1.首先创建一个地址表
create table address( id int primary key, pname varchar(50) not null )2.创建一个用户信息表
create table userinfo (id int primary key, # 设置主键 username varchar(20) not null, gender varchar(3) , phone char(11) unique ,# 唯一性 age int default 18, # 年龄不填的话默认18 address int , constraint fk foreign key (address) references address(id) # 与地址表的id建立外键关系 )展示创建表的信息
show create table userinfo;显示表的键情况
show index from userinfo;字段约束的修改:自增
alter table userinfo modify id int auto_increment;表级约束的修改:增加外键约束
alter table userinfo add constraint foreign key(address) references address(id); 注意:一个表的外键必须是另一个表的主键 当出现: SQL 错误 [1452] [23000]: Cannot add or update a child row: a foreign key constraint fails (`shanghui`.`#sql-12d0_72`, CONSTRAINT `girls_ibfk_1` FOREIGN KEY (`boy_id`) REFERENCES `boys` (`id`)) 错误原因:不能在已有数据的表中添加外键约束 也就是我们的外键要在插入数据之前就创建好!删除主键约束
alter table userinfo drop primary key;删除唯一约束
ALTER TABLE <表名> DROP INDEX <唯一约束名>;查看自增变量
show variables like '%auto_increment%'3.删除外键 首先先查看外键
show create table userinfo;删除多余外键userinfo_ibfk_1
alter table userinfo drop foreign key userinfo_ibfk_1;显示表信息
show create table userinfo;