我有一个练习表,如下所示:
id | otherColumn1 | otherColumn2 | otherColumn3
--------------------------------------------------------
1 | othervalue1 | othervalue2 | othervalue3
2 | othervalue1 | othervalue2 | othervalue3
我还有很多其他表:
Person
Address
Contact
------
------
------
现在我的任务是在每个其他表中添加 practiceId 列,该列将是练习表中的外键。请记住,某些表已经有 practiceId 列,因此我无需更改这些表。
问题是有很多表。我可以用较少的查询来执行此操作吗?或者我可以为此编写有效的PHP脚本吗?
我已经有了一个可以从特定数据库中获取表名的php脚本。
由于
答案 0 :(得分:2)
不,实际上没有办法一次向多个表添加字段。您需要为其编写脚本。不过,这不应该是一个难以编写的剧本:
一个简单的SHOW TABLES
查询将为您提供一个表列表,然后您可以在PHP中循环。
在循环中,SHOW COLUMNS FROM tablename
查询将为您提供当前表中的字段,您可以使用这些字段检查它是否已有practiceId
字段,然后在必要时添加它。 / p>
要添加字段,请使用ALTER TABLE tablename ADD COLUMN practiceId INT
(我假设为INT
,但如果您使用其他数据类型,则需要替换为您的字段)
要在新列上添加索引,您还可以使用ALTER TABLE
,或使用CREATE INDEX
。要创建外键约束,请使用带有ALTER TABLE
参数的ADD FOREIGN KEY
(但我相信这仅适用于InnoDB表)。
参考: