前言
postgresql不同于mysql数据库,mysql建表时通过auto_increment关键字就可以实现主键自增, 但postgresql是通过序列和函数实现主键自动生成。
创建方法
1、主键自增长
方法一:定义序列,再定义主键调用增长函数实现
定义序列
1 | CREATE SEQUENCE "public"."t_student_id_seq" |
创建表,主键添加增长函数
1 | CREATE TABLE "public"."t_student" ( |
对于已建好的表,更改主键字段设置即可
1 | ALTER TABLE "public"."t_student" ALTER COLUMN "id" SET DEFAULT |
方法二:将主键字段定义为serial4类型
1 | CREATE TABLE "public"."t_student_id_seq" ( |
查看DDL,会发现方法一和方法二结构是一致的,不同的是方法一定义的序列在表删除时,不会被清除。
2、创建uuid为主键
检查postgresql是否支持uuid自动生成函数
1 | select uuid_generate_v4(); |
若查询报错,创建扩展
1 | create extension "uuid-ossp"; |
创建表,主键添加uuid生成函数
1 | CREATE TABLE "public"."t_uuid" ( |
对于已经建好的表,更改主键字段设置
1 | ALTER TABLE "public"."t_uuid" ALTER COLUMN "id" SET DEFAULT uuid_generate_v4(); |