Глобальный уникальный идентификатор в Vertica

Я собираюсь создать некоторую таблицу в базе данных Vertica, в которой я должен дать глобальный уникальный идентификатор для уникальной идентификации каждой строки. Подскажите пожалуйста как это сделать?

2 ответа

Именованная последовательность - это то, что вы ищете. Вы можете использовать одну и ту же последовательность для нескольких таблиц:

-- 2 tables...
CREATE TABLE tst  (id INT, value varchar(10));
CREATE TABLE tst2 (id INT, value varchar(10));

-- 1 sequence...
CREATE SEQUENCE tst_seq;

-- ... said sequence is used by both tables
ALTER TABLE tst  ALTER COLUMN id set default NEXTVAL('tst_seq');
ALTER TABLE tst2 ALTER COLUMN id set default NEXTVAL('tst_seq');

-- testing...
INSERT INTO tst (value) VALUES ('tst');
INSERT INTO tst2 (value) VALUES ('tst2');

-- success!
=> SELECT * FROM tst;
 id |  value
----+---------
  1 | tst
(1 row)

=> SELECT * FROM tst2;
 id |  value
----+----------
  2 | tst2
(1 row)

затем NEXTVAL('named_sequence')здесь используется при создании таблицы, является эквивалентом NEWID() ты ищешь.

Пожалуйста, обратитесь к документации:

Типы Приращения Объектов Значения

  • Именованные последовательности - это объекты базы данных, которые генерируют уникальные числа в порядке возрастания или убывания. Чаще всего они используются, когда приложению требуется уникальный идентификатор в таблице или выражении. Как только именованная последовательность возвращает значение, она никогда не возвращает это же значение снова. Именованные последовательности являются независимыми объектами, и, хотя вы можете использовать их значения в таблицах, они не подчиняются им.
  • Автоинкрементное значение столбца: последовательность, доступная только для числовых типов столбцов. Последовательности с автоинкрементом автоматически назначают следующее значение инкрементной последовательности для этого столбца при добавлении новой строки в таблицу.
  • Столбец идентичности: последовательность, доступная только для числовых типов столбцов.
Другие вопросы по тегам