setval 是 PostgreSQL 中用于设置序列值的函数
employees 的表,并包含一个自增主键字段 id:CREATE TABLE employees ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT NOT NULL);在这个例子中,PostgreSQL 会自动为 id 字段创建一个名为 employees_id_seq 的序列。
INSERT INTO employees (name, age) VALUES ('Alice', 30);INSERT INTO employees (name, age) VALUES ('Bob', 28);INSERT INTO employees (name, age) VALUES ('Charlie', 32);此时,employees_id_seq 序列的当前值应该是 3,因为我们插入了 3 条记录。
setval 函数将 employees_id_seq 序列的值设置为 10:SELECT setval('employees_id_seq', 10);再次插入一条数据:INSERT INTO employees (name, age) VALUES ('David', 29);现在,由于我们已经将 employees_id_seq 序列的值设置为 10,新插入的记录的 id 将从 11 开始,而不是之前的 4。
employees 表以查看结果:SELECT * FROM employees;输出结果如下:
id | name | age----+----------+----- 1 | Alice | 30 2 | Bob | 28 3 | Charlie | 32 11 | David | 29通过这个实际操作案例,您可以了解如何使用 setval 函数设置 PostgreSQL 序列的值。


