要在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。
http://blog.sina.com.cn/s/blog_5351a3690100amub.html
分享到:
相关推荐
7. **数据库工具**:使用如Navicat、MySQL Workbench等数据库管理工具,可以更直观地查看和管理外键关联,包括生成ER图。 8. **Grails中的DDL生成**:Grails的Domain Class可以直接映射到数据库表,通过`dbCreate`...
在MySQL数据库中,外键是实现关系数据库间关联的重要手段,它可以确保数据的一致性和完整性。外键约束允许一个表中的字段引用另一个表中的主键,这样就形成了表与表之间的联系。以下将详细介绍四种在MySQL中添加外键...
其中,表B的 aid 是外键,关联表A的aid主键,如下设置外键: 如何设置外键的操作链接:https://blog.csdn.net/qq_43604667/article/details/104183134 理想中生成的ER图应为(也就是那条红线,表示表A和表B直接的...
对于数据库设计,Navicat Premium提供数据库模型设计工具,用户可以创建ER图,进行表结构设计,包括字段定义、索引设置、外键关联等。这有助于在设计阶段就发现潜在的问题,提升数据库的规范化程度。 除此之外,...
3. **表管理**:创建、修改和删除数据库表,包括字段定义、索引设置、外键关联等。 4. **SQL编辑器**:强大的SQL编写和调试环境,支持自动完成、语法高亮和错误检查,提高编写SQL语句的效率。 5. **数据导入导出**:...
3.文章(文章编号,文章标题,文章内容,文章作者[外键关联用户编号],发表时间,栏目编号[外键关联栏目编号]) IDE:PyCharm 2021.1.2 (Community Edition) Memory: 1774M Cores: 16 Python 3.7.6 Django 2.2.5 ...
对于复杂的数据关系,如外键约束,Navicat也能清晰地展示出来,有助于理解数据间的关联。 SQL开发是Navicat的另一大亮点。内置的SQL编辑器支持自动完成、语法高亮和错误检查,使得编写SQL语句更加方便快捷。此外,...
2. **创建数据库**:连接成功后,在左侧的数据库列表中右击,选择“新建数据库”,输入数据库名称(例如 test)和其他设置后创建。 3. **创建数据表**:在数据库上右击,选择“新建表”,根据提示创建数据表。 - ...
- **表设计**:允许用户创建、修改和管理数据库表结构,包括字段类型选择、索引创建、外键关联设置等。 - **数据模型设计**:通过ER图(实体关系图)展示数据库结构,帮助用户理解和优化数据库设计。 - **数据...
用户可以通过拖放字段,设置数据类型、长度、默认值、约束条件(如主键、外键、唯一性等)来构建数据库结构。此外,Navicat还支持自动生成DDL(Data Definition Language)语句,方便用户查看或复制表结构定义。 ...
- **表设计**:设计数据库表结构,包括字段名、数据类型、长度、是否允许为空等属性设置,还可以设置主键和外键,实现数据的关联。 - **数据操作**:提供数据浏览、添加、修改、删除功能,支持批处理操作,大大...
表结构设计直观明了,字段属性设置、索引创建、外键关联等功能一应俱全。同时,Navicat15还提供了数据同步和差异比较工具,帮助用户找出并解决数据库之间的不一致问题。 在版本控制方面,Navicat15集成了Git,使得...
2. **数据库设计**:它提供数据库模型设计功能,可以通过创建ER图来设计数据库结构,支持表的设计、修改和优化,包括字段定义、索引创建、外键关联等。 3. **数据操作**:用户可以直接在Navicat中执行SQL查询和脚本...
在Navicat中,"navicat8_mysql_cs.exe"可能是Navicat 8版本的MySQL客户端程序,用于安装和配置MySQL的连接设置。用户可以通过这个程序快速设置数据库连接参数,如主机名、端口、用户名和密码,从而实现与MySQL服务器...
- **表操作**:设计表结构,添加字段,设置约束,如主键、外键等,还可以进行数据的浏览和编辑。 - **查询执行**:在SQL编辑器中编写SQL语句,执行查询、插入、更新和删除等操作。 - **备份与恢复**:设定备份...
此外,它还支持关系视图,方便用户建立表与表之间的外键关联。 3. SQL编辑器:内置的SQL编辑器提供了代码自动完成和语法高亮功能,帮助用户编写、执行和优化SQL语句。用户还可以通过查询构建器以图形化方式构建复杂...
6. 外键(Foreign Key):用于建立不同表之间的关联,实现数据的一致性。 Navicat8的主要功能包括: 1. 数据库管理:创建、修改和删除数据库,以及进行数据导入导出操作。 2. 表设计:可视化方式创建和修改表结构,...
例如,你可以使用它的表设计器来创建、修改表结构,包括字段类型选择、设置索引、外键关联等。同时,它还支持数据浏览和编辑,用户可以直接在界面上查看和修改数据库中的记录,甚至进行批量操作。对于复杂的数据操作...
- 设置外键约束以及其他关系属性。 **步骤3:导出SQL脚本** - 完成数据库设计后,选择导出为SQL脚本。 - 选择目标数据库类型为PostgreSQL。 #### 三、使用Navicat Premium创建并管理数据库 **步骤1:在pgAdmin ...
在数据管理方面,Navicat提供了数据导入导出功能,支持从多种格式(如CSV、Excel、XML等)导入数据到数据库,也可以将数据库中的数据导出为不同格式。此外,数据同步功能可以帮助用户比较并更新不同数据库之间的差异...