PHP MyAdmin 更改现有 table 以创建外键

PHP MyAdmin Altering an existing table to create foreign keys

首先 post 如果这看起来是一个明显的答案,那么非常抱歉。这是我的问题的前提。我有一个正在使用 PhpMyAdmin 管理的数据库。我有一个名为 "Schedules" 的 table 并希望时间表上的司机 ID 是引用更大 table "Users" 的外键,其中 ID 列在此 table 是主键。这是我尝试过的:

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

但是,我得到这个错误:

1005 - Can't create table 'Scheduler.#sql-3b7_3b9d' (errno: 150) (Details…)

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

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

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

确保

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

参考this了解更多信息