【发布时间】:2020-02-19 00:07:45
【问题描述】:
在浏览了几十个论坛帖子和我的本地 SQL 书籍后,遇到了一个我无法解决的奇怪问题。
我有两张表,想为其中一张表添加外键。外键和主键共享相同的数据类型和字符集,但我根本无法添加外键。
插件帐户
| name | type | comments |
|---|---|---|
| id | int(11) | Primary Key |
| name | varchar(60) | Primary Key |
| label | varchar(255) | |
| shared | int(11) |
addon_account_data
| name | type | comments |
|---|---|---|
| id | int(11) | Primary Key |
| account_name | varchar(60) | Primary Key |
| money | double | |
| owner | varchar() |
我运行的查询:
ALTER TABLE `addon_account_data` ADD FOREIGN KEY (`account_name`) REFERENCES `addon_account`(`name`) ON DELETE RESTRICT ON UPDATE RESTRICT;
无法让它工作。一直在抛出同样的问题。
【问题讨论】:
-
您能否运行
show create table addon_account和show create table addon_account_data并将结果添加到您的问题中? -
InnoDB 允许外键引用任何索引列或列组。但是,在引用的表中,必须有一个索引,其中引用的列是相同顺序的第一列' - dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS FK 约束表示表中的子行在其他地方显示为 PK/UNIQUE。所以你的声明没有意义。你认为你是如何限制数据库的?
标签: mysql foreign-keys primary-key mysql-error-1005 mysql-error-150