0

我试图通过以下方式向我的创建表 DDL 添加检查约束:

CREATE TABLE TYPE_SCENE
 (
 ID_TYPE_SCENE  INTEGER(10)  PRIMARY KEY AUTO_INCREMENT,
 ID_TYPE  INTEGER(10)  NOT NULL,
 CREATED_BY      VARCHAR(20)  NOT NULL,
 CREATED_ON      TIMESTAMP  NOT NULL,
 COMPLETE_SCENE  CHAR(1), 
 INCOMPLETE_SCENE    CHAR(1),
 AMENDED_BY      VARCHAR(20),
 AMENDED_ON      TIMESTAMP,
 CONSTRAINT FK_TYPE FOREIGN KEY (ID_TYPE) REFERENCES  TYPE_DATA(ID_TYPE),
 CONSTRAINT COMPLETE_SCENE_CHECK CHECK (COMPLETE_SCENE IN (  'M', 'N', 'O'  )),
 CONSTRAINT INCOMPLETE_SCENE_CHECK CHECK (INCOMPLETE_SCENE IN ( 'A', 'B', 'C' ))
 )  

但是,当我在 MySQL 工作台中运行此查询时,出现以下错误: 错误代码:1215。无法添加外键约束

我知道问题是由于 CHECK 约束,因为查询给了我一个指向 CHECK 约束的语法错误。我究竟做错了什么?我认为这是实现 CHECK 约束的方法。为什么说外键约束问题?

有趣的是,在我升级到 MySQL 5.6 之前,它曾经在 MySQL 5.1 上工作。

我阅读了一些论坛和问题,其中说 MySQL 不再支持此功能并使用触发器。但是它曾经与早期的 MySQL 版本一起工作。其次,我应该仍然能够执行查询,因为问题是约束在 MySQL 中不起作用,但它从来不是语法问题。

有任何想法吗?

谢谢!

4

0 回答 0