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

时间:2010-10-27 06:38:24

标签: python mysql database schema database-administration

我有多个MySQL表格,其名称格式为"Shard_0", "Shard_1", "Shard_2" ... "Shard_n"。所有这些表都具有相同的表格结构。他们都住在同一个数据库中。

假设我想在所有这些表中添加一列。有没有办法以编程方式执行此操作?

类似的东西:

# pseudo code    
for i in range(n):
    tablename = "shard_"+str(i)
    ALTER TABLE tablename ...

有可能做那样的事吗?如果是这样,我需要什么语言和/或库?

由于

3 个答案:

答案 0 :(得分:4)

没问题。 Python有几个第三方库连接到数据库。但是最简单的方法是,如果你只需要这样做一次就是一个python脚本,它只将SQL指令写入stdout:

for i in range(n):
    tablename = "shard_"+str(i)
    print 'ALTER TABLE tablename ...'

然后只需从CLI调用它:

./sqlgenscript.py | mysql -u username -p

答案 1 :(得分:1)

是的,可以使用MySqlDb模块进行python并编写类似于sql查询的查询并执行它们来更新表。看看这个:http://mysql-python.sourceforge.net/MySQLdb.html

答案 2 :(得分:0)

我认为你可以创建一个带有一个参数的例程,并将“i”作为参数传递给你的例程。然后你可以打电话给你的例程。

致电testMy_Alter(i);

其中i = 1,2,3,...