gpt4 book ai didi

mysql - 外键错误: MySQL ERROR 1005 (HY000): Can't create table

转载 作者:行者123 更新时间:2023-11-29 10:16:57 29 4
gpt4 key购买 nike

我遇到一个问题,收到错误消息:

MySQL ERROR 1005 (HY000): Can't create table

每当我尝试创建外键来链接我的两个表时。我尝试了各种不同的方式来表达代码,但似乎都没有解决错误,我假设当前的代码最接近工作:

ALTER TABLE requests
ADD FOREIGN KEY FK_UserRequest(device_id) REFERENCES users(device_id)

我阅读了有关该主题的其他许多帖子,但似乎没有找到关于为什么这不起作用的简洁答案。我希望有人能具体回答以下问题:

  • 外键是否需要引用主键?我见过一些帖子对这个问题既说是又说不是。
  • 为什么这个特定代码不起作用?

背景信息-

  • 确认引擎为innoDB
  • device_id 是两个表中具有相同属性的列:CHAR(40)
  • users 表中的 device_id 不是主键
  • 数据库详细信息:版本 5.5.56-MariaDB

最佳答案

是的,您需要确保引用的键是某种索引。

取自:https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

MySQL requires indexes on foreign keys and referenced keys [...]

InnoDB permits a foreign key to reference any column or group ofcolumns. However, in the referenced table, there must be an indexwhere the referenced columns are listed as the first columns in thesame order.

关于mysql - 外键错误: MySQL ERROR 1005 (HY000): Can't create table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49993256/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com