我有多个MySQL表格,其名称格式为"Shard_0", "Shard_1", "Shard_2" ... "Shard_n"
。所有这些表都具有相同的表格结构。他们都住在同一个数据库中。
假设我想在所有这些表中添加一列。有没有办法以编程方式执行此操作?
类似的东西:
# pseudo code
for i in range(n):
tablename = "shard_"+str(i)
ALTER TABLE tablename ...
有可能做那样的事吗?如果是这样,我需要什么语言和/或库?
由于
答案 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”作为参数传递给你的例程。然后你可以打电话给你的例程。
致电test
。My_Alter
(i);
其中i = 1,2,3,...