我在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”行时遇到语法错误。
请帮助我。
正如您可以在MySQL的alter table文档中看到的那样,MySQL中不支持enforced
和enable query optimization
子句。
DB2中的enforced
属性仅指示是否强制执行外键。在MySQL中,您无法在外键级别上设置此行为。您只能使用foreign_key_checks服务器设置在会话/全局基础上启用/禁用所有外键检查。您只需确保打开此设置即可复制enforced子句。
enable query optimization
子句指示DB2使用外键约束来推断使用情况统计信息,这反过来可用于优化查询执行。 MySQL中没有任何等价物,但这不会影响外键的整体行为。