使用NaviCat for mysql创建外键的要求
2016-07-10 16:07
656 查看
要在Mysql数据库平台建立外键关联,必须满足以下几个条件:
1. 两个表必须为 InnoDB 类型。
2. 外键和被引用键必须是索引中的第一列,InnoDB不会自动为外键和被引用键建立索引,必须明确创建
它们。
3. 外键与对应的被引用键在 InnoDB 内必须有相似的内部数据类型,以便他们不需要一个类型转换就可
以进行比较。整型字段的长度与有符号类型必须一致。 字符型则不需要一致。如果指定了一个SET
NULL 动作,那你必须要确定子表中的对应字段没有定义为 NOT NULL
示例:
CREATE TABLE parent(id INT NOT NULL,
PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) TYPE=INNODB;
可以通过下面的方式在在后来添加外键约束:
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol] FOREIGN KEY [id] (...)
REFERENCES table_name (index_col_name, ...)
[ON DELETE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]还可以使用 SHOW CREATE TABLE 'TABLENAME'来查看创建语句(如果使用了工具)
navicat中使用步骤:
定位于外键所在表->设计表,首先建立索引
栏位名中填入外键,必须是第一列,INNODB所规定
接着创建外键
cascade表示级联更新删除
保存就行了
如果有遇can't create....erron(150), 检查一下数值型属性有没有定义为unsigned。
1. 两个表必须为 InnoDB 类型。
2. 外键和被引用键必须是索引中的第一列,InnoDB不会自动为外键和被引用键建立索引,必须明确创建
它们。
3. 外键与对应的被引用键在 InnoDB 内必须有相似的内部数据类型,以便他们不需要一个类型转换就可
以进行比较。整型字段的长度与有符号类型必须一致。 字符型则不需要一致。如果指定了一个SET
NULL 动作,那你必须要确定子表中的对应字段没有定义为 NOT NULL
示例:
CREATE TABLE parent(id INT NOT NULL,
PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) TYPE=INNODB;
可以通过下面的方式在在后来添加外键约束:
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol] FOREIGN KEY [id] (...)
REFERENCES table_name (index_col_name, ...)
[ON DELETE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION
| RESTRICT}]还可以使用 SHOW CREATE TABLE 'TABLENAME'来查看创建语句(如果使用了工具)
navicat中使用步骤:
定位于外键所在表->设计表,首先建立索引
栏位名中填入外键,必须是第一列,INNODB所规定
接着创建外键
cascade表示级联更新删除
保存就行了
如果有遇can't create....erron(150), 检查一下数值型属性有没有定义为unsigned。
相关文章推荐
- 使用NaviCat for mysql创建外键的要求
- 使用NaviCat for mysql创建外键的要求
- 使用NaviCat for mysql创建外键的要求
- 使用NaviCat for mysql创建外键的要求
- MySQL 警告WARN: Establishing SSL connection without server's identity verification is not recommended.解决办法
- 创建一个只能查看的mysql用户
- mysql 合集
- mysql:添加索引
- MYSQL的笔记
- mysql中,写limit得记得排序
- MySQL学习一:表的创建
- mysql数据库优化
- MySQL命令大全最全
- Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号 1
- MySQL key与index的区别
- MySQL存储过程详解 mysql 存储过程(转载)
- 完全卸载mysql
- 优化mysql slave的同步速度
- MySQL的安装配置和基本操作
- mysql 使用笔记