未创建MySQL外键

未创建MySQL外键,mysql,Mysql,我以为我在我的表上设置了外键,但是尽管在DDL中有正确的语法,甚至在尝试在事实发生后添加约束时,什么也没有发生。我没有收到任何错误,并且我收到一条消息说“10行受影响的记录:10个重复:0个警告:0” 以下是我的表格的定义: CREATE TABLE USERS_COURSES ( USERS_COURSES_ID INT NOT NULL AUTO_INCREMENT, USER_ID INT NOT NULL, COURSE_ID INT NOT

我以为我在我的表上设置了外键,但是尽管在DDL中有正确的语法,甚至在尝试在事实发生后添加约束时,什么也没有发生。我没有收到任何错误,并且我收到一条消息说“10行受影响的记录:10个重复:0个警告:0”

以下是我的表格的定义:

CREATE TABLE USERS_COURSES (
  USERS_COURSES_ID INT NOT NULL AUTO_INCREMENT,
  USER_ID          INT NOT NULL,
  COURSE_ID        INT NOT NULL,
  ROLE             INT NOT NULL,
  CONSTRAINT PK_USERS_COURSES PRIMARY KEY (USERS_COURSES_ID),
  CONSTRAINT U_USERS_COURSES UNIQUE (USER_ID, COURSE_ID),
  CONSTRAINT FK_USERS_COURSES_USERS FOREIGN KEY (USER_ID) REFERENCES USERS (USER_ID),
  CONSTRAINT FK_USERS_COURSES_COURSES FOREIGN KEY (COURSE_ID) REFERENCES COURSES (COURSE_ID)
);
当我在MySQL Workbench中查看表时,通过IntelliJ IDEA,我看到的只是一个名为
FK\U用户\u课程\u课程(课程ID)

我可以随意多次运行以下命令,但显然什么也没发生:

ALTER TABLE USERS_COURSES ADD CONSTRAINT FK_USERS_COURSES_USERS FOREIGN KEY (USER_ID) REFERENCES USERS (USER_ID);
ALTER TABLE USERS_COURSES ADD CONSTRAINT FK_USERS_COURSES_COURSES FOREIGN KEY (COURSE_ID) REFERENCES COURSES (COURSE_ID);
以下是我在IntelliJ的“数据库”选项卡中看到的内容:

这可能是什么原因造成的?我需要外键来防止删除,而现在这种情况不会发生。

请查看MySQL的。
虽然MySQL接受外键声明作为有效语法,但目前只有InnoDB引擎真正实现了它们。如果它不是设置中的默认值,请将其包含在表选项中-创建表…引擎=InnoDB

确保您正在使用InnoDB引擎(创建表…引擎=InnoDB)。否则,外键在语法上被接受,但没有实现。@Mike这就是答案。如果你想回答,我会接受的。谢谢。完成。只是想确保我没有覆盖你们已经检查过的地面(此外,若不是这样,我什么都并没有!)