2

フォームの名前を持つ複数のMySQLテーブルがあります"Shard_0", "Shard_1", "Shard_2" ... "Shard_n"。それらはすべて同じテーブル構造を持っています。それらはすべて同じデータベースに存在します。

これらすべてのテーブルに列を追加したいとします。プログラムでそれを行う方法はありますか?

何かのようなもの:

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

そのようなことをすることは可能ですか?もしそうなら、どの言語やライブラリが必要ですか?

ありがとう

4

3 に答える 3

4

問題ない。Pythonには、データベースに接続するためのサードパーティライブラリがいくつかあります。ただし、これを1回だけ実行する必要がある場合の最も簡単なアプローチは、SQL命令をstdoutに書き込むPythonスクリプトです。

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

次に、CLIから次のように呼び出します。

./sqlgenscript.py | mysql -u username -p
于 2010-10-27T06:50:31.470 に答える
1

はい、可能です。Python用のMySqlDbモジュールを使用し、SQLクエリと同様のクエリを記述して実行し、テーブルを更新できます。これを見てください:http://mysql-python.sourceforge.net/MySQLdb.html

于 2010-10-27T08:40:13.687 に答える
0

1つの引数を取るルーチンを作成し、引数として「i」をルーチンに送信できると思います。次に、ルーチンを呼び出すことができます。

を呼び出しtestます。My_Alter(私);

ここで、i = 1,2,3、..。

于 2010-10-27T07:10:07.687 に答える