如何为一组表生成ADD FOREIGN KEY语句?

时间:2014-04-21 20:48:19

标签: mysql sql foreign-keys

我正在使用MySQL 5.5.37。给定一组表(table_a,table_b,...,table_n),如何编写将生成SQL的SQL语句(或过程),该SQL生成这些表链接到的所有外键?请注意,虽然我可以运行一个mysqldump来生成带有“CONSTRAINT”子句的“CREATE TABLE”语句,但我只想要添加外键的statmeents,例如。

ALTER TABLE table_a ADD FOREIGN KEY (P_Id) REFERENCES table_x(P_Id)

谢谢, - 戴夫

1 个答案:

答案 0 :(得分:1)

SELECT CONCAT('ALTER TABLE ', table_name,
              ' ADD FOREIGN KEY (', constraint_name, ')',
              ' REFERENCES ', referenced_table_name,
              '(', referenced_column_name, ');') AS alter_cmd
FROM information_schema.key_column_usage
WHERE referenced_table_name IS NOT NULL;