[英]Possible to programmatically ALTER multiple MySQL tables?
我有多个MySQL表,这些表的名称形式为"Shard_0", "Shard_1", "Shard_2" ... "Shard_n"
所有这些表均具有相同的表结构。 它们都生活在同一个数据库中。
假设我要向所有这些表添加一列。 有没有办法通过编程方式做到这一点?
就像是:
# pseudo code
for i in range(n):
tablename = "shard_"+str(i)
ALTER TABLE tablename ...
可以做这样的事情吗? 如果是这样,我需要什么语言和/或图书馆?
谢谢
没问题。 Python有几个第三方库可以连接到数据库。 但是,最简单的方法(如果只需要执行一次)将是一个python脚本,该脚本仅将SQL指令写入stdout:
for i in range(n):
tablename = "shard_"+str(i)
print 'ALTER TABLE tablename ...'
然后像这样从CLI调用它:
./sqlgenscript.py | mysql -u username -p
是的,它是可能的,您可以将MySqlDb模块用于python并编写类似于sql查询的查询,并执行它们以更新表。 看看这个: http : //mysql-python.sourceforge.net/MySQLdb.html
我认为您可以创建一个接受一个参数的例程,然后将“ i”作为参数发送到您的例程。 然后,您可以调用例程。
通话test
。 My_Alter
(i);
其中i = 1,2,3,...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.