MySQL 序列(Sequence)是一种用于生成自动递增 ID 的数据库对象。它们通常用于在插入数据时确保主键值始终按顺序分配。
1、创建序列
在 MySQL 中,序列是通过名为 SERIAL 的数据类型创建的。当你创建一个新的表并使用 SERIAL 作为主键列的数据类型时,MySQL 会自动为你创建一个序列。
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
2、获取序列值
你可以使用 NEXTVAL() 函数从序列中获取下一个值。
SELECT NEXTVAL('users_id_seq');
这将返回一个整数,表示下一个可用的 ID 值。请注意,NEXTVAL() 函数不会自动插入到表中。你需要在插入数据时将其手动分配给主键列。
3、修改序列
如果需要调整序列的起始值或递增值,可以使用 ALTER SEQUENCE 命令。例如,要将 users_id_seq 的起始值修改为 100,递增值修改为 10,可以执行以下命令
ALTER SEQUENCE users_id_seq START WITH 100 INCREMENT BY 10;
4、重置序列
如果需要将序列的值重置为特定值,可以使用 ALTER SEQUENCE 命令。例如,要将 users_id_seq 重置为值
ALTER SEQUENCE users_id_seq RESTART WITH 1;
这些是 MySQL 序列的一些基本用法。请注意,序列在 MySQL 8.0 版本之后已经被废弃,取而代之的是自增(Auto-Increment)特性。建议使用更现代化的方法来生成自动递增 ID。