繁体   English   中英

可以以编程方式更改多个MySQL表吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM