PostgreSQL和 MySQL数据库还是有一定的区别。
下面了解一下 PGSQL的主键序列。
在 PostgreSQL 中,GENERATED BY DEFAULT
和 GENERATED ALWAYS
是用于定义自动生成的列(Generated Column)的选项。一般可作用在主键上。
实操总结:
在 PostgreSQL 中,如果你使用 GENERATED BY DEFAULT 或 GENERATED ALWAYS 选项来定义一个自动生成的 ID 字段,而且没有显式地指定序列的名称,PostgreSQL 将会自动为该列生成一个名为 <table_name>_<column_name>_seq 的默认序列名称,其中:
使用下面 SQL 查询语句来查看序列的当前值:
SELECT last_value FROM your_table_name_your_column_name_seq;
-- 比如:查看用户表id序列值
SELECT last_value FROM user_id_seq;
也可以通过 Navicat的工具栏中的其他查看所有序列:
要修改当前序列的值,可以使用 PostgreSQL 中的 SETVAL 函数
。
SELECT setval('your_sequence_name', new_value);
-- 比如:user_id_seq序列值改为15,下次插入时,id=16
SELECT setval('user_id_seq', 15);
– 求知若饥,虚心若愚。