Postgre或mysql id列自动递增

时间:2018-12-15 08:01:11

标签: mysql postgresql unique primary-key ddl

我对postgre或mysql中的主键有疑问。

所以:

在mongodb中,id不是整数,它们是一些唯一的值,例如“ 507f191e810c19729de860ea”。当您要同步多个ID的记录时,这会有所帮助。他们永远不会匹配(或机会很少)。这样我就可以从一个数据库中获取一条记录,并将其插入数据库中,而不会与id主键约束发生冲突。

所以我的问题是Postgre SQL或MySQL数据库中是否有类似的功能。

我知道我可以使用php / nodejs / python生成ID,但是我更喜欢从数据库本身使用自动且简单的工具。

我可以在数据库中创建我的过程/函数,但我避免了这一点-我希望数据库自动处理此问题(就像mongodb那样)。

这种方法是否有缺点?

2 个答案:

答案 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中的自动增量。