我有一个关于postgre或mysql中的主键的问题。
所以:
在mongodb中,ids不是整数,它们是一些唯一的值,如"507f191e810c19729de860ea“。当您希望同步来自多个ids的记录时,这会有所帮助。他们永远比不上(或者说机会很小)。因此,我可以从一个数据库中获取一条记录,并将其插入到我的数据库中,而不会出现id主键约束中的冲突。
因此,我的问题是,Postgre或MySQL数据库中有类似的功能。
我知道我可以用php/nodejs/python生成id,但是我更喜欢使用数据库本身的一些自动和简单的东西。
我可以在数据库中创建我的过程/函数,但我避免了--我希望数据库能够自动地处理这个问题(就像mongodb所做的那样)。
这种做法有什么坏处吗?
发布于 2018-12-15 00:11:08
在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...
);
发布于 2018-12-15 00:06:43
可以使用串行,如下所示:
CREATE TABLE table_name(
id SERIAL
);
这类似于SQL中的自动增量。
https://stackoverflow.com/questions/53790609
复制相似问题