Я пытаюсь создать таблицу с автоматически увеличивающимся столбцом, как показано ниже. Поскольку Redshift psql не поддерживает SERIAL, мне пришлось использовать тип данных IDENTITY < / а>:
IDENTITY (seed, step)
Предложение, указывающее, что столбец является столбцом IDENTITY. Столбец IDENTITY содержит уникальные автоматически сгенерированные значения. Эти значения начинаются со значения, указанного как начальное число, и увеличиваются на число, указанное как шаг. Тип данных для столбца IDENTITY должен быть INT или BIGINT.
Мой оператор создания таблицы выглядит так:
CREATE TABLE my_table(
id INT IDENTITY(1,1),
name CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY( id )
);
Однако, когда я пытался вставить данные в my_table
, строки увеличивались только по четному числу, как показано ниже:
id | name |
----+------+
2 | anna |
4 | tom |
6 | adam |
8 | bob |
10 | rob |
Мои инструкции вставки выглядят следующим образом:
INSERT INTO my_table ( name )
VALUES ( 'anna' ), ('tom') , ('adam') , ('bob') , ('rob' );
У меня также возникли проблемы с возвратом столбца id в начало с 1. Существуют решения для типа данных SERIAL
, но я не видел никакой документации для IDENTITY
. Любые предложения будут высоко ценится!
CREATE TABLE temp ( id bigint IDENTITY(0,1), val varchar(255) ); INSERT INTO temp (val) values ('a'), ('b'), ('c');
дает мне восходящие четные значения, начиная с 0. - person Ogaday   schedule 20.06.2017