HI~您好,欢迎您访问"北京金科合创软件官方网站",购买正版软件、海外正版软件商城就选金科软件(Goldk Software) 咨询热线:15210221926  金科软件-国内外正版软件服务商
您的位置: 首页>技术支持>Navicat

Navicat 不能成功地创建外键?

发布时间:2021-12-07 19:22:31点击量:

可应用操作系统:Windows、macOS、Linux
可应用 Navicat 产品:Navicat for MySQL、Navicat for PostgreSQL、Navicat for SQLite、Navicat for Oracle、Navicat for MariaDB、Navicat Premium
可应用 Navicat 版本编号:全部
 
MySQL & MariaDB
如果你收到 MySQL 错误如 1005: Can't create table '.\mydb\#sql-44c_1c.frm'(errno: 150),它是由于创建外键失败。有些可能的情况导致在 MySQL 数据库创建外键失败。这些错误都关系到MySQL 本身。
例子情况:
1.如果两个字段(字段名和外键名)使用不相容的字段类型。
2.如果你使用 "On Delete Set Null",但字段不允许 null。
要在 MySQL 声明外键,用户应该紧记几个要点:
1.两个表必须是 InnoDB 类型。
2.在参考的表,必须有一个索引,参考的列被行为第一列的排序相同。
3.不支持索引前缀在外键列。
4.InnoDB 需要索引在外键和参考键,以便外键检查可以快速,不需要表扫描。
5.两个键字段必须有相容的字段类型。
6.整数类型的大小和符号必须是相同。
7.字符串类型的长度不一定是相同。
8.外键的名在数据库中必须是唯一的。
9.如果你指定一个 SET NULL 动作,确保你没有在子表中声明列为 NOT NULL.
欲了解更多外键限制的详细信息,请访问 - http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
 
PostgreSQL
如果你收到 PostgreSQL 错误如 ERROR: there is no unique constraint matching given keys for referenced table "xxxx",它是由于创建外键失败。
要在 PGSQL 声明外键,用户应该紧记几个要点:
1.FOREIGN KEY 限制必须参考 PRIMARY KEY 或 UNIQUE 限制。
2.两个键字段必须有相容的数据类型。
3.必须在参考和被参考的表有 REFERENCES 权限。
 
Oracle
要在 Oracle 声明外键,用户应该紧记几个要点:
1.FOREIGN KEY 限制必须参考 PRIMARY KEY 或 UNIQUE 限制。
2.两个键字段必须有相容的数据类型。
3.复合外键被限制为 32 列。
4.必须有权限访问上级和子表。
欲了解更多外键限制的详细信息,请访问 - http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10795/adfns_co.htm#1006976
 
SQLite
要在 SQLite 声明外键,用户应该紧记几个要点:
1.上级和子键必须有相同的基数。
欲了解更多外键限制的详细信息,请访问 - http://www.sqlite.org/foreignkeys.html
 

上一篇:Navicat 支持阿里云吗?

下一篇:Navicat Premium有没有办法保存输入的表名大小写?

微信公众号

  • 回到顶部
  • 15210221926
  • Goldk-AGE
  • 微信公众号