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