问题标签 [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外键的简单问题
我有两张桌子:
表作者:ID (INTEGER)、author_name (VARCHAR)、first_name (VARCHAR)、last_name (VARCHAR)、preferred_name (VARCHAR)。
表 CoAuthored: ID (INTEGER) author1ID (INTEGER), author2ID (INTEGER), paper_ID (INTEGER) (此链接引用的合着论文的 ID)
我想添加外键约束,以便 CoAuthored 中的 author1ID 和 author2ID 引用 Author 中的 ID。我这样定义表:
这是我创建外键的尝试:
这执行得很好,但是当我尝试添加一个包含 ID 中不存在的 author1ID 的元组时,它允许我这样做,这意味着外键约束不起作用。
我需要做些什么不同的事情?我尝试在创建语句中创建两个表 ENGINE=INNODB,但随后我会得到一个 ERROR 1005 can't create table。
mysql - MySQL外键到另一个外键
这个想法很简单:我有三个(或更多)表
现在我想要的是外键关系,例如 tbl3.id 将指向 tbl2.id 和 tbl2.id 将指向 master_tbl.id - 所有外键都是ON UPDATE CASCADE
and ON DELETE CASCADE
。我从中得到的是,当我从 tbl2 中删除一条记录时,它的 tbl3 等效项也会被删除,但 master_tbl 不会。当我从 master_tbl 中删除一条记录时,所有三个表都会被删除。
当我尝试在 tbl3.id->tbl2.id 上创建外键时,我收到 mysql 错误 150 - 无法创建表(tbl2.id->master_tbl.id 已经创建)。我的 MySQL 版本是5.1.46
. 任何想法为什么会这样?
编辑:表定义 smf_members aka master_table
cyp_users 又名 tbl2
cyp_vip_users 又名 tbl3
mysql - MySQL“记得”删除的 InnoDB 表
当我尝试在特定数据库中重新创建特定表时,MySQL 让我很伤心。我认为问题在于 MySQL 在某个地方有一些表的外键记录,并在我尝试重新创建表时不断尝试检查约束。
有问题的数据库用于测试环境,并通过转储产品数据库、删除测试数据库、再次创建测试数据库然后将产品数据库转储应用到新的测试数据库来定期刷新。
但是昨晚当我去执行这个过程时,我突然遇到了 MySQL 的 errno: 121,这通常与不正确的外键有关......如果我尝试使用不同的表定义,而不指定键,我得到 errno: 150反而。但是,只有当我尝试将转储应用到与旧数据库完全相同名称的新数据库时才会发生这种情况。如果我创建一个名称与旧数据库不同的数据库(仍在同一台服务器上)并应用转储,则没有问题。
事实上,即使在一个全新的数据库中,我什至无法创建一个没有任何键的完全相同名称的表。
这个例子演示了这个问题
我已经删除了 test_db 数据库;这应该删除所有表和所有记录。然后我创建它,连接到它并尝试创建旧表 client_feed_group; 我得到一个错误。我创建了另一个具有不同名称的数据库并遵循相同的步骤;这次没有问题。
mysql - MySQL Foreign Key Error 1005 errno 150 主键作为外键
我正在使用 MySQL Workbench 制作一个小型数据库。我有一个名为“Immobili”的主表,它的主键由四列组成:(Comune、Via、Civico、Immobile)。
我还有其他三个表,它们具有相同的主键(Comune、Via、Civico、Immobile),但这些字段也引用了表 Immobili。
第一个问题:我可以制作一个也是外键的主键吗?
第二个问题:当我尝试导出更改时,它说:
显示引擎状态:
表 dbimmobili/valutazionimercato 的外键约束错误:
在被引用的表中找不到索引,其中被引用的列显示为第一列,或者表中的列类型与被引用的表不匹配约束。请注意,使用 >= InnoDB-4.1.12 创建的表中 ENUM 和 SET 的内部存储类型发生了变化,并且旧表中的此类列不能被新表中的此类列引用。
我在哪里做错了?
java - 外键错误
我在 Java 程序中创建 mySQL 表时遇到问题。我经常得到 Can't create table... errno: 150
这是我的代码:
我用谷歌搜索了许多创建外键的教程,但我仍然遇到问题。那么我做错了什么?
mysql - 尝试更改表时出现错误 150
我有这个 sql 子句:
但我遇到了这个错误:
错误查询 SQL:
ALTER TABLE
sedi_i18n
ADD CONSTRAINTsedi_i18n_FK_1
FOREIGN KEY(id
) 引用sedi
(id
) ON DELETE CASCADE,添加约束外sedi_i18n_FK_2
键(culture
) 引用culture
(code
),添加约束外sedi_i18n_FK_3
键(nation
) 引用nations
(iso_code_2
);MySQL 的消息:
1005 - 无法创建表'test_javier_4.#sql-528_aed'(错误号:150)
任何想法?
问候
哈维
mysql - 使用 InnoDB 引擎创建表时出现 MySQL 1005 错误
当我尝试使用以下定义创建表时,
发生OperationalError
:
如果我删除尾随ENGINE=InnoDB
.
这背后的原因是什么?
MySQL版本是
mysql Ver 14.12 Distrib 5.0.84, for pc-linux-gnu (i686) using readline 5.2
sql - 为什么这个 MySQL Create Table 语句会失败?
使用 mySQLAdmin 工具,我尝试创建一个表。该工具生成 SQL 语句,然后重新报告“无法创建表”,没有其他线索知道它是什么错误!
这里是 :
有人可以帮忙吗?
mysql - SQL - 错误代码 1005 和错误号 121
我正在运行由MySQL Workbench自动生成的以下 MySQL 脚本(已精简),我收到以下错误:
错误代码:1005 无法创建表“regula.reservation”(错误号:121)
我对数据库不是很精通,这个错误信息也不是很丰富。
这里有什么问题?
sql - 无法创建表,错误号:150
这些创建表的查询有什么不好?
在 SQL 工作台中一切正常,但使用 maven-sql-plugin 无法创建表 Candidate_history_has_candidate_changes。所有名称都少于 64 个符号。请帮忙!