MySQL自增约束

1、自增约束
特点:
(1)一个表只能有一个自增约束
因为一个表只有一个维护自增值的变量。
(2)自增约束的列只能是整数列
(3)自增约束的列必须是键列(主键,唯一键,外键),
实际中一般是主键自增最多

2、如何在建表时指定某个列自增

create table 【数据库名.】表名称(
	字段名1 xxInt  primary key auto_increment,
	字段名2 数据类型 【unique key】【not nulldefault 默认值,
	字段名3 数据类型 default 默认值,
	。。。。
);
create table t_stu(
	sid int auto_increment, #错误 
	sname varchar(20)
);
ERROR 1075 (42000): Incorrect table definition; 
there can be only one auto column and it must be defined as a key
create table t_stu(
	sid int primary key auto_increment,
	sname varchar(20)
);
mysql> desc t_stu;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| sid   | int(11)     | NO   | PRI | NULL    | auto_increment |
| sname | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

3、如何给自增列添加数据呢
自增列,如果指定值,就按照指定的来,如果没有指定值就自增。
如果指定的值是0或null,就按照自增的来。

insert into t_stu values('张三');#错误的
ERROR 1136 (21S01): Column count doesn't match value count at row 1' 

insert into t_stu(sname) values('张三');  #sid=1
insert into t_stu(sname) values('李四');  #sid=2

insert into t_stu values(5,'王五');      #sid=5
insert into t_stu(sname) values('赵六');  #sid=6
insert into t_stu values(0,'钱七');     #sid=7
insert into t_stu values(null,'王八');   #sid = 8
insert into t_stu values(-1,'负数'); 	#sid=-1
insert into t_stu(sname) values('测试');	#sid=9
insert into t_stu values(3,'333');         #sid=3
insert into t_stu(sname) values('测试顶顶顶顶');#sid=10

建议:正常使用时,不要乱插

4、建表后增加自增

alter table 【数据库名.】表名称 modify 字段名 数据类型 auto_increment;

5、如何取消自增

alter table 【数据库名.】表名称 modify 字段名 数据类型;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值