我有一个练习表,像这样:
id | otherColumn1 | otherColumn2 | otherColumn3
--------------------------------------------------------
1 | othervalue1 | othervalue2 | othervalue3
2 | othervalue1 | othervalue2 | othervalue3
我有很多其他的表:
Person
Address
Contact
------
------
------
现在我的任务是在每个其他表中添加practiceId列,这将是来自练习表的外键。请记住,有些表已经有practiceId列,所以我不需要更改这些表。
问题是有很多表。我可以用更少的查询来做到这一点吗?或者我可以为此编写一个高效的PHP脚本吗?
我已经有一个php脚本,可以从一个特定的数据库获取表名。
谢谢
不,确实没有办法一次将一个字段添加到多个表中。您需要为此编写一个脚本。这应该不是一个很难写的脚本:
一个简单的SHOW TABLES
查询将得到一个表列表,然后您可以在PHP中循环使用。
在循环中,SHOW COLUMNS FROM tablename
查询将为您提供当前表中的字段,您可以使用它来检查它是否已经有practiceId
字段,然后在必要时添加它。
要添加字段,请使用ALTER TABLE tablename ADD COLUMN practiceId INT
(我假设是INT
,但如果使用不同的数据类型,请替换为需要定义的字段)
要在新列上添加索引,还可以使用ALTER TABLE
或CREATE INDEX
。创建一个外键约束使用ALTER TABLE
与ADD FOREIGN KEY
参数(但我相信这只适用于InnoDB表)。
- <
- 显示表/gh><
- 显示列/gh>
- ALTER TABLE <
- 创建索引/gh>
- 外键约束