MYSQL中的DB2查询-外键

时间:2018-06-26 10:05:12

标签: mysql db2 foreign-keys

我在DB2数据库的ddl下有此文件。

ALTER TABLE "DBName"."TableName" 
        ADD CONSTRAINT "FRNKEYAPPLICATIONID" FOREIGN KEY
                ("APPLICATION_ID")
        REFERENCES "DBName"."TableName"
                ("APPLICATION_ID")
        ON DELETE NO ACTION
        ON UPDATE NO ACTION
        ENFORCED
        ENABLE QUERY OPTIMIZATION;

我们正在从DB2迁移到MYSQL。

MYSQL 5.7.11中应该使用什么查询来复制它。

“强制和启用QUERY OPTIMIZATION行上出现语法错误。

请帮助我。

1 个答案:

答案 0 :(得分:0)

正如您可以在alter table的MySQL文档中轻松看到的那样,MySQL既不支持enforced也不支持enable query optimization子句。

DB2中的enforced属性仅指示是否强制执行外键。在MySQL中,您不能在外键级别上设置此行为。您只能使用foreign_key_checks服务器设置在会话/全局基础上启用/禁用所有外键检查。您只需要确保启用此设置即可复制强制条款。

enable query optimization子句指示DB2使用外键约束来推断使用情况统计信息,而后者又可以用于优化查询执行。 MySQL中没有任何等效项,但这不会影响外键的整体行为。