问题标签 [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.
mysql - 添加表时 MySQL“错误 1005”
我最近一直在使用 MySQL 数据库,并使用 MySQL 工作台来设计数据库。
当我使用导出到 SQL 函数时,我实际上可以将布局放入数据库中,我得到:
“错误 1005:无法创建表”
这似乎与 create table 语句中的外键有关。
有没有人可以解决这个问题,不涉及取消约束并稍后将它们放回?考虑到数据库的大小,这是一个不太理想的解决方案。
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 一起使用。你有什么建议吗?
mysql - INNODB 级联语法/逻辑问题
我正在创建的 SQL 数据库有问题。我正在尝试将其切换为使用 INNODB,但我似乎无法获得正确的级联语法(或可能的逻辑)。
这是代码错误的一部分。它不喜欢第 40 行。
以通常的神秘(至少对我而言)形式的错误输出:
编辑:
如果有帮助,这是我尝试输入的整个 SQL 文件。
mysql - 表创建时 MySQL 错误 1005
我的表定义:
这会产生以下错误:
这是什么意思?
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
mysql - MySQL 错误号 121
我在 MySQL 创建中收到此错误。我正在做:
有任何想法吗?错误状态:Can't create table './xxxxxxxx/blogReply.frm' (errno: 121)
mysql - MySQL 错误 150,无法创建表
我在创建表格时遇到问题,我不明白出了什么问题。phpMyAdmin 在 PRIMARY KEY 声明旁边设置错误指示器...我不明白为什么这是错误的...
该表是一个子表,它与另一个表具有一对多的标识关系。
编辑:这是我能找到的关于错误代码的所有文档:链接
EDIT2:图片已删除
编辑3:
mysql - MySQL创建索引错误的表
好的,所以我在 MySQL 中使用索引和外键创建表。我使用 MySQL Workbench 创建表,然后让它对 SQL 创建脚本进行前向工程(我在可视 DB 环境中做得比直接手动写出 SQL 代码要好)。
问题是当我将 sql 脚本导入 mysql 时,我得到了经典的错误:
我每次都设法找出问题,通常与索引/外键相关,但现在我开始对每次都必须修复它感到恼火。我真的不明白问题出在哪里(尤其是当 MySQL 产品为其自己的数据库创建 sql 代码时)。下面是一些通常会导致问题的代码。
错误通常来自第一个 INDEX 定义 - 即使我取出索引定义,我也只是在第一个外键约束定义处得到错误。我检查过,外键远程列和本地列是相同的数据类型和大小。
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。“表定义不正确,只能有一个自动列,并且必须将其定义为键。”
如何使自动递增键(代理键)在索引顺序列表中排在第二位,以便我符合规范?
谢谢 !
mysql - 外键约束问题
我收到错误 #1005 - 无法创建表 (errno: 150)。
我已经通过了以下清单:
- 两个表都是 InnoDB
- 列的类型相同(INT)
- 属性相同(UNSIGNED NOT NULL)
- 排序规则是相同的
- 我已经尝试在外键上使用索引,但它仍然不起作用(并且 MySQL 5 不需要它们)