最近在使用Golang开发数据库操作过程中,涉及到PostgreSQL的主键自增长,一般在MySQL中可以使用AUTO_INCREMENT字段来实现主键自增长,语句如下:

CREATE TABLE IF NOT EXISTS `table_name`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `title` VARCHAR(100) NOT NULL,
   `author` VARCHAR(40) NOT NULL,
   `sub_date` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

但在PostgreSQL中无法使用AUTO_INCREMENT,经过查询得知PostgreSQL需要使用序列来标识字段的自增长,语句如下:

#先创建序列
CREATE SEQUENCE upms_id_seq START 1;

#主键赋默认值
CREATE TABLE "table_name" (
  "id" int4 NOT NULL DEFAULT nextval('upms_id_seq'),
  "title" varchar(100) NOT NULL,
  "author" varchar(40) NOT NULL,
  "sub_date" timestamptz,
  PRIMARY KEY ("id")
);

标签: PostgreSQL, AUTO_INCREMENT

添加新评论