阅读量:119
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 序列的值。