如果你没有发现自己经常创buildfk,那么一个select就是保持简单,让MySQL为你命名(就像Daniel Vassallo在他的回答开头提到的那样 )。
虽然您无法使用此方法唯一地“猜测”约束名称,但您可以通过运行查询轻松find外键约束名称:
use information_schema; select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from KEY_COLUMN_USAGE where REFERENCED_TABLE_SCHEMA = 'your_db_schema_name' ORDER BY TABLE_NAME;
例如,您可能会从查询中收到以下内容:
+------------+-------------+-----------------+-----------------------+------------------------+ | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_TABLE_NAME | REFERENCED_COLUMN_NAME | +------------+-------------+-----------------+-----------------------+------------------------+ | note | taskid | note_ibfk_2 | task | id | | note | userid | note_ibfk_1 | user | id | | task | userid | task_ibfk_1 | user | id | +------------+-------------+-----------------+-----------------------+------------------------+
如果这个额外的步骤不是太多,那么你应该能够很容易地find你正在寻找的fk。