无法在 phpmyadmin 中添加外键约束 - mysql

Cannot add foreign key constraint in phpmyadmin - mysql

我有一个叫 teachers 的 table。我无法使用 teachers 中的 id 通过以下查询在 slot table 中创建复合 table。

CREATE TABLE `teachers` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
);

ALTER TABLE `teachers`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `teachers_email_unique` (`email`);

创建广告位table

CREATE TABLE `slot` (
  `teacher_id` bigint(20) NOT NULL,
  `is_confirmed` tinyint(1) NOT NULL,
    PRIMARY kEY (`teacher_id`),
    foreign key (`teacher_id`) references `teachers`(`id`) on delete CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

引用字段和被引用字段的数据类型在定义外键约束时应完全相同。在你的 teachers table 中,idBIGINT UNSIGNED,而在你的 slot table 中,它只是 BIGINT。同时添加 UNSIGNED 子句:

CREATE TABLE `slot` (
  `teacher_id` bigint(20) UNSIGNED NOT NULL,
  `is_confirmed` tinyint(1) NOT NULL,
    PRIMARY kEY (`teacher_id`),
    foreign key (`teacher_id`) references `teachers`(`id`) on delete CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=latin1;