————————————————————————————
代码案例
-- 向pri1、2表插入数据
insert into my_pri1
values('古天乐','bc20190001'),
('蔡康永','bc20190002');
insert into my_pri2
values('bc20190001','bc25890001',90),
('bc20190001','bc25890002',85),
('bc20190002','bc25890001',92);
-- 主键冲突(重复)
insert into my_pri1
values('刘涛','bc20190002');-- 不可以:主键冲突
insert into my_pri2
values('bc20190001','bc25890001',100);-- 不可以:主键冲突
-- 删除主键
alter table 表名drop primary key;
-- 自增长
create table my_auto(
idint primary key
auto_increment comment'自动增长',
namevarchar(10)not null
);
-- 触发自增长
insert into my_auto(name)values('邓丽君');
insert into my_autovalues(null,'成龙');
insert into my_autovalues(default,'吴绮莉');
-- 指定数据
insert into my_autovalues(6,'黄晓明');
insert into my_autovalues(null,'杨颖');
-- 修改表选项的值
alter table my_auto
auto_increment=4;-- 向下修改(改小) 不生效
alter table my_auto
auto_increment=10;-- 向下修改(改大) 生效
-- 查看自增长变量
show variableslike
'auto_increment%';
-- 修改自增长步长
set auto_increment_increment=5;--一次自增5
-- 插入记录,使用自增长
insert into my_autovalues(null,'杨紫');
insert into my_autovalues(null,'张一山');
-- 删除自增长
-- 错误:主键理论上是单独存在的(系统会认为我们要再加一个主键)
alter table my_auto modify idint primary key;
-- 有主键的时候,千万不要再加主键
alter table my_auto modify idint;
-- 唯一键
create table my_unique1(
numberchar(10)unique comment
'学号:唯一,允许为空',
namevarchar(20)not null
) charset utf8;
create table my_unique2(
numberchar(10)not null comment
'学号',
namevarchar(20)not null,
-- 增加唯一键
unique key(number)
);
create table my_unique3(
idint primary key auto_increment,
numberchar(10)not null,
namevarchar(20)not null
);
-- 追加唯一键
alter table my_unique3add unique key(number);
-- 插入数据
insert into my_unique1
values(null,'大雄'),
('bc20190001','胖虎'),
(null,'静香');
insert into my_unique1
values('bc20190001','哆啦A梦');
-- 删除唯一键
alter table my_unique3drop index number;