PostgreSQL自增的ID作为主键 方法

在PostgreSQL中,如果您希望为表创建一个自增的ID作为主键,可以使用SERIAL类型或者使用自增字段与触发器。以下是两种方法的示例:

方法1:使用SERIAL类型

  1. 创建表时,在主键列上使用SERIAL类型:
sql

CREATE TABLE my_table (      id SERIAL PRIMARY KEY,      name VARCHAR(50)  );
  1. 插入数据时,不需要指定ID值,PostgreSQL会自动为ID列生成一个唯一的自增值:
sql

INSERT INTO my_table (name) VALUES ('John Doe');
  1. 您可以使用SELECT currval('my_table_id_seq')来获取最新的自增值,其中my_table_id_seq是序列名称。

方法2:使用自增字段与触发器

  1. 创建表时,不使用SERIAL类型,而是创建一个自增字段和一个触发器:
sql

CREATE TABLE my_table (      id INT PRIMARY KEY,      name VARCHAR(50),      CONSTRAINT check_id CHECK (id > 0)  );
  1. 创建一个序列和一个触发器函数来自动为ID列生成自增值:
sql

CREATE SEQUENCE my_table_id_seq;  CREATE OR REPLACE FUNCTION auto_increment_id() RETURNS TRIGGER AS $$  BEGIN      NEW.id = nextval('my_table_id_seq');      RETURN NEW;  END;   $$ LANGUAGE plpgsql;
  1. 创建一个触发器,将触发器函数与INSERT事件关联起来:
sql

CREATE TRIGGER trigger_auto_increment_id BEFORE INSERT ON my_table FOR EACH ROW EXECUTE FUNCTION auto_increment_id();
  1. 插入数据时,不需要指定ID值,触发器会自动为ID列生成一个唯一的自增值:
sql

INSERT INTO my_table (name) VALUES ('John Doe');
  1. 您可以使用SELECT nextval('my_table_id_seq')来获取下一个自增值。
版权声明:
作者:89391311
链接:http://www.csev.cn/share/code/2024032879.html/
来源:测试分享
版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。
THE END
根据我国《计算机软件保护条例》第十七条规定:“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录