postgresql—postgre或mysql id列自动增量

esyap4oy  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(325)

我有一个关于postgre或mysql主键的问题。
所以:
在mongodb中,id不是整数,而是一些唯一的值,如“507f191e810c19729de860ea”。当您想要同步来自多个id的记录时,这会有所帮助。他们永远不会匹配(或者机会很小)。因此,我可以从一个数据库中获取一条记录,并将其插入到我的数据库中,而不会在id主键约束中发生冲突。
所以我的问题是,在postgresql或mysql数据库中也有类似的功能。
我知道我可以用php/nodejs/python生成id,但是我更喜欢从数据库本身使用一些自动和简单的东西。
我可以在数据库中创建我的过程/函数,但我避免了这种情况-我希望数据库自动处理这种情况(就像mongodb那样)。
这种方法有什么缺点吗?

igetnqfo

igetnqfo1#

您可以按如下方式使用序列号:

CREATE TABLE table_name(
    id SERIAL
);

这就像sql中的自动增量。

wyyhbhjk

wyyhbhjk2#

在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...
);

相关问题