Mysql 添加外键

语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外键的名称
/
CREATE TABLE tb_active (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
content text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
user_id int(11) NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
KEY user_id_2 (user_id),
CONSTRAINT FK_ID FOREIGN KEY (user_id) REFERENCES tb_user (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/数据库

删除外键
语法: ALTER TABLE table-name DROP FOREIGN KEY key-id;
例: ALTER TABLE tb_active DROP FOREIGN KEY FK_ID安全

自动键更新和删除:
外键能够保证新插入的记录的完整性,可是,若是在REFERENCES从句中已命名的表删除记录会怎么样?在使用一样的值做为外键的辅助表中会发生什么?code

很明显,那些记录也应该被删除,不然在数据库中就会有不少无心义的孤立记录,MYSQL能够经过向FOREIGN KEY...REFERENCES修饰符添加一个ON DELETE 或ON UPDATE子句简化任务,它告诉了数据库在这种状况如何处理孤立任务索引

关键字 含义
CASCADE 删除包含与已删除键值有参照关系的全部记录
SET NULL 修改包含与已删除键值有参照关系的全部记录,使用NULL值替换(只能用于已标记为NOT NULL的字段)
RESTRICT 拒绝删除要求,直到使用删除键值的辅助表被手工删除,而且没有参照时(这是默认设置,也是最安全的设置)
NO ACTION 啥也不作ci

请注意,经过ON UPDATE 和 ON DELETE规则,设置MYSQL可以实现自动操做时,若是键的关系没有设置好,可能会致使严重的数据破坏,
例如:若是一系列的表经过外键关系和ON DELETE CASCADE 规则链接时,任意一个主表的变化都会致使甚至只和原始删除有一些将要联系的记录在没有警告的状况被删除,因此,咱们在操做以前还要检查这些规则的,操做以后还要再次检查.unicode

添加外键
alter table locstock add foreign key locstock_ibfk2(stockid) references product(stockid)
locstock 为表名, locstock_ibfk2 为外键名 第一个括号里填写外键列名, product为表名,第二个括号里是写外键关联的列名it

删除外键
alter table locstock drop foreign key locstock_ibfk2table

查看表有哪些外键
show create table locstock语法

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]引用

全部tables必须是InnoDB型 ,它们不能是临时表。在引用表中,必须有一个索引,外键列以一样的顺序被列在其中做为第一列。这样一个索引若是不存在,它必须在引用表里被自动建立。在引用表中,必须有一个索引,被引用的列以一样的顺序被列在其中做为第一列。不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中, 这是由于对这些列的索引必须老是包含一个前缀长度。 若是CONSTRAINTsymbol 被给出,它在数据库里必须是惟一的。若是它没有被给出,InnoDB自动建立这个名字。

相关文章
相关标签/搜索