我在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行上出现语法错误。
请帮助我。
答案 0 :(得分:0)
正如您可以在alter table的MySQL文档中轻松看到的那样,MySQL既不支持enforced
也不支持enable query optimization
子句。
DB2中的enforced
属性仅指示是否强制执行外键。在MySQL中,您不能在外键级别上设置此行为。您只能使用foreign_key_checks服务器设置在会话/全局基础上启用/禁用所有外键检查。您只需要确保启用此设置即可复制强制条款。
enable query optimization
子句指示DB2使用外键约束来推断使用情况统计信息,而后者又可以用于优化查询执行。 MySQL中没有任何等效项,但这不会影响外键的整体行为。