黑马程序员技术交流社区
标题:
【上海校区】Mysql建表之后再对约束进行增删操作
[打印本页]
作者:
Jessie001
时间:
2018-11-1 10:35
标题:
【上海校区】Mysql建表之后再对约束进行增删操作
本帖最后由 Jessie001 于 2018-11-1 10:39 编辑
-- 对主键进行操作
create table test(
id int ,
name VARCHAR(20)
);
desc test;
-- 添加主键
ALTER TABLE test ADD PRIMARY KEY ( id);
-- 删除主键
alter table test drop PRIMARY key;
-- 删除主键报错的情况 [Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
create table test2(
id int PRIMARY key auto_increment,
name VARCHAR(20)
);
alter table test2 drop PRIMARY key;
-- 需要先删除自增长再删除主键
-- 删除自增长
Alter table test2 change id id int;
desc test2;
-- 然后再删除主键
alter table test2 drop PRIMARY key;
唯一约束
-- 创建表之后才想起来要给某个字段添加唯一约束???
create table test3(
id int PRIMARY key,
name VARCHAR(20)
);
-- 添加唯一约束
alter table test3 add UNIQUE (name);
desc test3;
-- 删除唯一约束
ALTER TABLE test3 DROP INDEX name;
-- 唯一约束也是索引
-- 删除外键约束
CREATE table category (
c_id int primary key auto_increment,
c_name varchar(10));
CREATE TABLE product (
p_id int PRIMARY KEY auto_increment,
p_name varchar(10),
p_price INT,
category_id INT,
FOREIGN KEY (category_id) REFERENCES category(c_id));
-- 删除外键,报错???
alter table product drop foreign key category_id;
-- 观察 :
执行语句:
insert into product(p_name,p_price,category_id) VALUES('aa',100,9);
运行结果:
--- Cannot add or update a child row: a foreign key constraint fails (`temp2`.`product`, CONSTRAINT `
product_ibfk_1
` FOREIGN KEY (`category_id`) REFERENCES `category` (`c_id`))
-- 删除默认的外键约束名字
执行语句:
alter table product drop foreign key product_ibfk_1;
-- 正解 :可在创建表的时候给外键约束取个别名方便后期使用
CREATE TABLE product (
p_id int PRIMARY KEY auto_increment,
p_name varchar(10),
p_price INT,
category_id INT,
CONSTRAINT cate_id FOREIGN KEY (category_id) REFERENCES category(c_id));
alter table product drop foreign key cate_id;
作者:
不二晨
时间:
2018-11-1 15:46
作者:
魔都黑马少年梦
时间:
2018-11-1 16:06
作者:
魔都黑马少年梦
时间:
2018-11-8 17:02
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2