Mysql实例关于MySQL外键的简单学习教程
《Mysql实例关于MySQL外键的简单学习教程》要点: MYSQL教程在MySQL中,InnoDB引擎类型的表支持了外键约束. MYSQL教程
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name,…)
REFERENCES tbl_name (index_col_name,…)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
MYSQL教程该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字.
MYSQL教程 MYSQL教程? 1. CASCADE: 从父表中删除或更新对应的行,同时自动的删除或更新自表中匹配的行.ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持. MYSQL教程? 2. SET NULL: 从父表中删除或更新对应的行,同时将子表中的外键列设为空.注意,这些在外键列没有被设为NOT NULL时才有效.ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持. MYSQL教程? 3. NO ACTION: InnoDB拒绝删除或者更新父表. MYSQL教程? 4. RESTRICT: 拒绝删除或者更新父表.指定RESTRICT(或者NO ACTION)和忽略ON DELETE或者ON UPDATE选项的效果是一样的. MYSQL教程? 5. SET DEFAULT: InnoDB目前不支持. MYSQL教程? 外键约束使用最多的两种情况无外乎: MYSQL教程? 1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败; MYSQL教程? 2)父表更新时子表也更新,父表删除时子表匹配的项也删除. MYSQL教程? 前一种情况,在外键定义中,我们使用ON UPDATE CASCADE ON DELETE RESTRICT;后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE. MYSQL教程? InnoDB允许你使用ALTER TABLE在一个已经存在的表上增加一个新的外键: MYSQL教程
ALTER TABLE tbl_name
ADD [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
MYSQL教程? InnoDB也支持使用ALTER TABLE来删除外键: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |