使用navicat创建MySQL外键关联

在MySQL中设置外键关联需确保表为InnoDB类型,外键与被引用键是索引首列并有相同数据类型。创建外键时需手动创建索引,并注意类型匹配,如整型长度和符号,字符型不强制一致。同时,删除操作的约束动作需考虑子表字段定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注:本文复制与新浪博客。大家可以参考一下~~在此,感谢原文作者为大家解决问题~~

 

要在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中使用步骤:

定位于外键所在表->设计表,首先建立索引

 使用navicat创建MySQL外键关联

 栏位名中填入外键,必须是第一列,INNODB所规定

接着创建外键

使用navicat创建MySQL外键关联

 cascade表示级联更新删除

保存就行了

如果有遇can't create....erron(150), 检查一下数值型属性有没有定义为unsigned。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值