在postgres中生成唯一ID

时间:2011-03-27 18:36:50

标签: c++ linux postgresql

有没有办法在postgres中生成一个唯一的ID?假设我有两个文件:

文件1:
a,b,c
d,e,f

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

我希望将它们插入到同一个表中(这应该是可能的,因为它们具有相同数量的具有相同数据类型的元素)但仍然能够在以后单独获取它们。我可以获得postgresql来为我生成一个唯一的ID吗?

4 个答案:

答案 0 :(得分:1)

你确定可以!您可以创建loaded_files表并存储要加载的文件的名称。从id检索loaded_files并使用该数据将数据插入file_items表。

您要求的是一种解决方案,通常在使用应用程序代码或多个SQL语句加载数据时解决。

答案 1 :(得分:1)

是的,有一种方法可以在postgres中生成唯一的ID。听起来你需要的只是sequence

例如:

create sequence file_id;


然后在每次加载文件时使用nextval('file_id')。使用nextval('file_id')后,您可以使用currval('file_id')返回值而不增加序列

答案 2 :(得分:0)

是的,假设您希望将唯一ID作为主键:

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启动您的行,并在每个插入处递增。

答案 3 :(得分:0)