创建语法
语法说明
RESTRICT : 只要本表格里面有指向主表的数据, 在主表里面就无法删除相关记录。一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是数据哗的一下就没了.
CASCADE : 如果在foreign key 所指向的那个表里面删除一条记录,那么在此表里面的跟那个key一样的所有记录都会一同删掉。(常用)
问题原因
今天在Mysql中创建表时,提示错误:ERROR 1005: Can't create table (errno: 150) 在网上搜索,发现产生该错误有三种可能:
1. 外键和被引用外键类型不一样,比如integer和double
2. 找不到要被引用的列
3. 表的字符编码不一样
语法说明
RESTRICT : 只要本表格里面有指向主表的数据, 在主表里面就无法删除相关记录。一般来说,就选restrict最安全,当然也根据具体的业务而言了.cascade很cool,但是数据哗的一下就没了.
CASCADE : 如果在foreign key 所指向的那个表里面删除一条记录,那么在此表里面的跟那个key一样的所有记录都会一同删掉。(常用)
问题原因
今天在Mysql中创建表时,提示错误:ERROR 1005: Can't create table (errno: 150) 在网上搜索,发现产生该错误有三种可能:
引用
1. 外键和被引用外键类型不一样,比如integer和double
2. 找不到要被引用的列
3. 表的字符编码不一样