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 列之间的数据类型可能不同/或者列名可能不同。
确保
- 您在用户 table
中有一个名为 ID
的列
Driver_ID
列与用户 table 中的 ID
列具有相同的数据类型。确保两者的数据类型完全相同。
参考this了解更多信息
首先 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 列之间的数据类型可能不同/或者列名可能不同。
确保
- 您在用户 table 中有一个名为
Driver_ID
列与用户 table 中的ID
列具有相同的数据类型。确保两者的数据类型完全相同。
ID
的列
参考this了解更多信息