我对postgre或mysql中的主键有疑问。
所以:
在mongodb中,id不是整数,它们是一些唯一的值,例如“ 507f191e810c19729de860ea”。当您要同步多个ID的记录时,这会有所帮助。他们永远不会匹配(或机会很少)。这样我就可以从一个数据库中获取一条记录,并将其插入数据库中,而不会与id主键约束发生冲突。
所以我的问题是Postgre SQL或MySQL数据库中是否有类似的功能。
我知道我可以使用php / nodejs / python生成ID,但是我更喜欢从数据库本身使用自动且简单的工具。
我可以在数据库中创建我的过程/函数,但我避免了这一点-我希望数据库自动处理此问题(就像mongodb那样)。
这种方法是否有缺点?
答案 0 :(得分:1)
在PostgreSQL中,您可以生成UUID。
首先,您需要确保已安装扩展程序:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
,然后使用uuid_generate_v4
函数生成一个UUID
。如果您不想每次都记得插入它,可以将其定义为主键的默认值:
CREATE TABLE mytable (
id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
-- other columns as needed...
);
答案 1 :(得分:0)
您可以按以下方式使用 SERIAL :
CREATE TABLE table_name(
id SERIAL
);
这就像SQL中的自动增量。