mysql基本语法外键_mysql外键(FOREIGNKEY)使⽤介绍⼀、基本概念
1、MySQL中“键”和“索引”的定义相同,所以外键和主键⼀样也是索引的⼀种。不同的是MySQL会⾃动为所有表的主键进⾏索引,但是外键字段必须由⽤户进⾏明确的索引。⽤于外键关系的字段必须在所有的参照表中进⾏明确地索引,InnoDB不能⾃动地创建索引。
2、外键可以是⼀对⼀的,⼀个表的记录只能与另⼀个表的⼀条记录连接,或者是⼀对多的,⼀个表的记录与另⼀个表的多条记录连接。
3、如果需要更好的性能,并且不需要完整性检查,可以选择使⽤MyISAM表类型,如果想要在MySQL中根据参照完整性来建⽴表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。
4、外键的使⽤条件
① 两个表必须是InnoDB表,MyISAM表暂时不⽀持外键
② 外键列必须建⽴了索引,MySQL 4.1.2以后的版本在建⽴外键时会⾃动创建索引,但如果在较早的版本则需要显式建⽴;
③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,⽐如int和tinyint可以,⽽int和char则不可以;
mysql创建表数据类型5、外键的好处:可以使得两张表关联,保证数据的⼀致性和实现⼀些级联操作。
⼆、使⽤⽅法
1、创建外键的语法:
外键的定义语法:
[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}]
该语法可以在 CREATE TABLE 和 ALTER TABLE 时使⽤,如果不指定CONSTRAINT symbol,MYSQL会⾃动⽣成⼀个名字。
ON DELETE、ON UPDATE表⽰事件触发限制,可设参数:
① RESTRICT(限制外表中的外键改动,默认值)
② CASCADE(跟随外键改动)
③ SET NULL(设空值)
④ SET DEFAULT(设默认值)
⑤ NO ACTION(⽆动作,默认的)
[转]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。