我正在使用 ErWin 9.5 为 MySQL 5.6 生成 DDL,并且在创建外键时遇到了问题。MYSQL 不使用 ErWin 生成的外键名,因为该CONSTRAINT
语句不包含在 DDL 中。
为简单的 FK 关系生成的 DDL ErWin 是:
ALTER TABLE table_two
ADD FOREIGN KEY table_two_ibfk_99b (table_one_id) REFERENCES table_one (table_one_id);
当它运行时,MySQL 使用名称生成约束table_two_ibfk_1
并从那里递增。
但是,如果我将 ErWin 中的目标数据库更改为其他任何内容,它将使用正确的CONSTRAINT
语句语法。例如,目标 DB 设置为 时ODBC V3
,ErWin 生成以下 DDL:
ALTER TABLE table_two
ADD CONSTRAINT table_two_ibfk_99a FOREIGN KEY (table_one_id) REFERENCES table_one (table_one_id);
仅使用 ODBC 的问题是我失去了AUTO_INCREMENT
PK 的能力。
有没有人找到解决方案?