问题标签 [mysql-error-1005]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3073 浏览

mysql - 添加表时 MySQL“错误 1005”

我最近一直在使用 MySQL 数据库,并使用 MySQL 工作台来设计数据库。

当我使用导出到 SQL 函数时,我实际上可以将布局放入数据库中,我得到:

“错误 1005:无法创建表”

这似乎与 create table 语句中的外键有关。

有没有人可以解决这个问题,不涉及取消约束并稍后将它们放回?考虑到数据库的大小,这是一个不太理想的解决方案。

0 投票
10 回答
41860 浏览

mysql - 外键在 MySQL 中不起作用:为什么我可以插入一个不在外列中的值?

我在 MySQL 中创建了一个表:

这创建了我想要的表(尽管“DESCRIBE actions;”命令显示外键是 MUL 类型的键,我不确定这意味着什么)。但是,当我尝试输入 questions 或 users 表中不存在的 Q_id 或 U_id 时,MySQL 仍然允许这些值。

我做错了什么?如何防止具有外键的表接受无效数据?

更新 1

如果我添加TYPE=InnoDB到最后,我会收到一个错误:

错误 1005 (HY000): 无法创建表 './quotes/actions.frm' (errno: 150)

为什么会发生这种情况?

更新 2

有人告诉我,用功能外键强制数据完整性很重要,而且 InnoDB 不应该与 MySQL 一起使用。你有什么建议吗?

0 投票
2 回答
409 浏览

mysql - INNODB 级联语法/逻辑问题

我正在创建的 SQL 数据库有问题。我正在尝试将其切换为使用 INNODB,但我似乎无法获得正确的级联语法(或可能的逻辑)。

这是代码错误的一部分。它不喜欢第 40 行。

以通常的神秘(至少对我而言)形式的错误输出:

编辑:

如果有帮助,这是我尝试输入的整个 SQL 文件。

0 投票
5 回答
2905 浏览

mysql - 表创建时 MySQL 错误 1005

我的表定义:

这会产生以下错误:

这是什么意思?

0 投票
4 回答
44750 浏览

mysql - MySQL:创建带有 FK 错误的表 (errno 150)

我已经使用MySQL Workbench创建了一个模型,现在正尝试将其安装到 mysql 服务器上。

使用File > Export > Forward Engineer SQL CREATE Script...它为我输出了一个不错的大文件,其中包含我要求的所有设置。我切换到MySQL GUI 工具(特别是查询浏览器)并加载此脚本(请注意,我将从一个官方 MySQL 工具转换为另一个)。但是,当我尝试实际执行此文件时,我一遍又一遍地收到相同的错误

SQLSTATE[HY000]: 一般错误: 1005 无法创建表 './srs_dev/location.frm' (errno: 150)

“好的”,我对自己说,位置表有问题。所以我检查了输出文件中的定义。

在我看来还可以。我猜测可能是查询浏览器有问题,所以我把这个文件放在服务器上并尝试以这种方式加载它

我得到同样的错误。所以我开始谷歌这个问题,发现各种帐户都在谈论 InnoDB 样式表的错误,这些表因外键失败,修复方法是添加“SET FOREIGN_KEY_CHECKS=0;” 到 SQL 脚本。好吧,正如您所看到的,这已经是 MySQL Workbench 吐出的文件的一部分。

所以,我的问题是,当我在做我认为我应该做的事情时,为什么这不起作用?

版本信息:

  • MySQL:5.0.45

  • 图形用户界面工具:1.2.17
  • 工作台:5.0.30
0 投票
4 回答
47337 浏览

mysql - MySQL 错误号 121

我在 MySQL 创建中收到此错误。我正在做:

有任何想法吗?错误状态:Can't create table './xxxxxxxx/blogReply.frm' (errno: 121)

0 投票
6 回答
15879 浏览

mysql - MySQL 错误 150,无法创建表

我在创建表格时遇到问题,我不明白出了什么问题。phpMyAdmin 在 PRIMARY KEY 声明旁边设置错误指示器...我不明白为什么这是错误的...

该表是一个子表,它与另一个表具有一对多的标识关系。

编辑:这是我能找到的关于错误代码的所有文档:链接

EDIT2:图片已删除

编辑3:

0 投票
1 回答
8181 浏览

mysql - MySQL创建索引错误的表

好的,所以我在 MySQL 中使用索引和外键创建表。我使用 MySQL Workbench 创建表,然后让它对 SQL 创建脚本进行前向工程(我在可视 DB 环境中做得比直接手动写出 SQL 代码要好)。

问题是当我将 sql 脚本导入 mysql 时,我得到了经典的错误:

我每次都设法找出问题,通常与索引/外键相关,但现在我开始对每次都必须修复它感到恼火。我真的不明白问题出在哪里(尤其是当 MySQL 产品为其自己的数据库创建 sql 代码时)。下面是一些通常会导致问题的代码。

错误通常来自第一个 INDEX 定义 - 即使我取出索引定义,我也只是在第一个外键约束定义处得到错误。我检查过,外键远程列和本地列是相同的数据类型和大小。

0 投票
3 回答
3036 浏览

mysql - mysql(innodb)外键约束问题

我在尝试为 MySql(Innodb)中的表生成外键时遇到了几个问题。你能帮帮我吗?

参考表:

我需要表 C 中的 2 个外键,因为在删除相应实体或相应用户时必须删除 C 中的条目。

当我尝试创建表 CI 时遇到错误:ERROR 1005: Can't create table (errno: 150)。我怀疑这是因为我没有遵守 mysql 规范中规定的规则。 http://dev.mysql.com/doc/refman/5.4/en/innodb-foreign-key-constraints.html

规范的以下部分/规则是什么意思?

“InnoDB 需要在外键和引用键上建立索引,以便外键检查可以快速且不需要表扫描。在引用表中,必须有一个索引,其中外键列按相同顺序列为第一列。”

是不是说C表的外键需要和实体表和用户表的主键对应,这样实体表的ENTITYID必须在主键的第一位,而用户表的NAME必须在主键的第一位。换句话说,我的主键声明应该重写如下吗?

如果是这样,当我尝试重新排序上述键声明时,我遇到错误 1075。“表定义不正确,只能有一个自动列,并且必须将其定义为键。”

如何使自动递增键(代理键)在索引顺序列表中排在第二位,以便我符合规范?

谢谢 !

0 投票
1 回答
167 浏览

mysql - 外键约束问题

我收到错误 #1005 - 无法创建表 (errno: 150)。

我已经通过了以下清单:

  • 两个表都是 InnoDB
  • 列的类型相同(INT)
  • 属性相同(UNSIGNED NOT NULL)
  • 排序规则是相同的
  • 我已经尝试在外键上使用索引,但它仍然不起作用(并且 MySQL 5 不需要它们)