我正在将旧数据库 SyBase 转换为 MySQL,并且我有这个 DDL 查询:
ALTER TABLE "DBA"."tab_prodotto"
ADD FOREIGN KEY "fkey_idlinea" ("tpr_idlin")
REFERENCES "DBA"."linea" ("lin_id")
go
COMMENT ON FOREIGN KEY "DBA"."tab_prodotto"."fkey_idlinea" IS
'Riferimento linea'
go
查询的 Alter 部分工作得很好,但我在 COMMENT 上遇到了麻烦。我已经知道我可以更改用于添加 COMMENT 的列,但是外键也可以这样做吗?如果是,怎么办?我在文档中没有发现任何特别的内容。 预先感谢您。
MySQL 参考手册 显示
FOREIGN KEY
命令允许的语法为:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION
没有允许的
COMMENT
部分。看来这是不允许的。
我上面引用的手册是5.6版本的。我查了5.1和5.5版本,语法是一样的。
奇怪的是,MySQL Workbench 允许在外键上输入外键注释,但在同步到数据库时不会生成它。
在 MySQL Workbench 中输入外键注释会导致该表在同步更改时继续显示......非常烦人!