【问题标题】:PHP MyAdmin Altering an existing table to create foreign keysPHPMyAdmin 更改现有表以创建外键
【发布时间】:2015-06-22 07:31:19
【问题描述】:

如果这似乎是一个显而易见的答案,那么非常抱歉。这是我的问题的前提。我有一个使用 PhpMyAdmin 管理的数据库。我有一个名为“Schedules”的表,并希望计划中的驱动程序 ID 是一个外键,它引用一个更大的表“Users”,其中该表中的 ID 列是主键。这是我尝试过的:

     ALTER TABLE `Schedules` 
       ADD CONSTRAINT `FK_DriverID` 
   FOREIGN KEY (`Driver_ID`) 
REFERENCES `users`(`ID`);

但是,我得到了这个错误:

1005 - 无法创建表 'Scheduler.#sql-3b7_3b9d' (errno: 150) (详情……)

我真的对这个错误感到不知所措,因为我没有尝试创建任何表,只是更改了现有的表。再次感谢,如果我破坏了格式,我们深表歉意。

【问题讨论】:

标签: mysql phpmyadmin foreign-keys


【解决方案1】:

这主要是由于表中的主键引用错误。

通常这意味着您引用的键不存在/FOREIGN KEY 和 REFERENCED 列之间的数据类型可能存在差异/或者列名称可能存在差异。

确保

  1. 您在 users 表中有一个名为 ID 的列
  2. Driver_ID 列与用户表中的ID 列具有相同的数据类型。确保两者的数据类型完全相同。

更多信息请参考this

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 2015-01-18
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2023-03-08
    • 2017-03-11
    • 2018-08-14
    相关资源
    最近更新 更多