mysql121_mysql-12序列使用

mysql序列是一组整数:1,2,3....,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段自动增加,就可以使用mysql序列来实现。

使用auto_increment来定义列

drop table if EXISTS test_autoincrement ;

create table `test_autoincrement`(

`id` int UNSIGNED not null auto_increment,

PRIMARY KEY (id),

`name` varchar(20) not null,

`date` date not null,

`origin` varchar(30)

);

insert into test_autoincrement (name,date,origin) values

('housefly','2001-09-10','kitchen');

-- 使用last_insert_id() 可以查看当前操作的次数

select LAST_INSERT_ID();

select * from test_autoincrement;

insert into test_autoincrement values

(null,"millipede",'2001-09-10','driverway'),

(null,"grasshopper",'2001-09-10','front yard');

-- 即便插入多行,也只显示插入第一行时产生的值

select LAST_INSERT_ID();

select * from test_autoincrement;

b961c385ad34f1b25d2e927899b8350e.png

重置序列

先删除列,再添加列

drop table if EXISTS test_autoincrement ;

create table `test_autoincrement`(

`id` int UNSIGNED not null auto_increment,

PRIMARY KEY (id),

`name` varchar(20) not null,

`date` date not null,

`origin` varchar(30)

);

insert into test_autoincrement (name,date,origin) values

('housefly','2001-09-10','kitchen'),

("millipede",'2001-09-10','driverway'),

("grasshopper",'2001-09-10','front yard');

alter table test_autoincrement drop id;

select * from test_autoincrement;

alter table test_autoincrement add id int(3) UNSIGNED not null auto_increment FIRST,

add primary key (id);

select * from test_autoincrement;

5306e39d9397debedbfd58c1bd41f423.png

设置序列的开始值

建表时设置序列值

create table `test_autoincrement`

(`id` int(3) UNSIGNED not null auto_increment,

primary key (id),

`name` varchar(20) not null )

engine=innodb auto_increment=100 charset=utf8;

insert into test_autoincrement values

(null,"tom"),

(null,"jerry");

select * from test_autoincrement;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值