Mysql字段的约束

tech2024-07-02  66

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;
最新回复(0)