Генерация уникального идентификатора в postgres - PullRequest
0 голосов
/ 27 марта 2011

Есть ли способ создать уникальный идентификатор в postgres?Предположим, у меня есть два файла:

файл 1:
a, b, c
d, e, f

file2:
h, i, j
a, f, h

, и я хочу вставить их в одну и ту же таблицу (что должно быть возможно, потому что они имеют одинаковое количество элементов с одинаковым типом данных), но все же иметь возможность получить их отдельно позже.Могу ли я получить postgresql для создания уникального идентификатора для меня?

Ответы [ 4 ]

1 голос
/ 28 марта 2011

Да, есть способ создать уникальный идентификатор в postgres.Похоже, все, что вам нужно, это последовательность

Например:

create sequence file_id;


, затем используйте nextval('file_id') каждый раз при загрузке файла.После того как вы использовали nextval('file_id'), вы можете использовать currval('file_id') для возврата значения без увеличения последовательности

1 голос
/ 27 марта 2011

Вы уверены, что можете!Вы можете создать таблицу loaded_files и сохранить имя загружаемого файла.Получите id из loaded_files и используйте его для вставки данных в вашу таблицу file_items.

То, что вы запрашиваете, - это решение, которое обычно решается при загрузке данных с помощью кода приложения или нескольких операторов SQL.

0 голосов
/ 27 марта 2011

Будет ли решение на Как сгенерировать uuid с PostgreSQL 8.4.4 на Ubuntu 10.04? будет работать для вас?

0 голосов
/ 27 марта 2011

Да, если вы хотите, чтобы уникальный идентификатор был первичным ключом:

CREATE TABLE my_table (id SERIAL PRIMARY KEY,
                       your_other_fields... );

Спецификатор SERIAL автоматически выполняет следующие действия:

CREATE SEQUENCE my_seq START 1;
CREATE TABLE my_table (id integer PRIMARY KEY DEFAULT nextval('my_seq'));

Что будет начинать ваши строки с id = 1 и увеличиваться при каждой вставке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...