PythonのMySQLdbでCREATE TABLEなど
Scalaのコードで埋まるはずが今度はPythonだったりします。
MySQLサーバーを立ち上げて色々といじって遊んでいるのですが
CREATE TABLEやDROP TABLEといったDDLをアプリケーションから
実行できないか試してみました。
テーブルのCREATEをアプリケーションから実行できると
やれることの幅が広がりますね。
#!/usr/bin/python2.7.2 # -*- coding: utf-8 -*- import sys, math, datetime import MySQLdb # constant DB_HOST = "127.0.0.1" DB_USER = "user" DB_PSWD = "pswd" DB_PORT = 3306 # 時刻表示 def disp_time(prc): systime = datetime.datetime.now().strftime(u'%Y/%m/%d %H:%M:%S') print prc + ' -> ' + systime # SQL実行 def execute_sql(): try: conn = MySQLdb.connect(host=DB_HOST, db="test", port=DB_PORT,\ user=DB_USER, passwd=DB_PSWD, charset="utf8") cursor = conn.cursor() cursor.execute("DROP TABLE IF EXISTS hoge") cursor.execute("CREATE TABLE hoge(\ id INT(11) PRIMARY KEY AUTO_INCREMENT,\ com VARCHAR(200))") except MySQLdb.Error, e: print "SQL ERROR %d: %s" % (e.args[0], e.args[1]) sys.exit(1) finally: if conn: conn.close if cursor: cursor.close # メイン処理部 if __name__ == "__main__": disp_time('start') execute_sql() disp_time('end ')
GitHubにてPythonシリーズのリポジトリも作成してみました。
上記のコードも公開しております。
MetalPython/MySQL/mysql_ddl.py at master · cobot00/MetalPython · GitHub
今回は以下のサイトを参考にさせてもらいました。
意外とDDLを実行する例が見つからなかったので非常に助かりました。
Thanks a lot!