Python MySQLdb:创建数据库和填充表

时间:2014-11-18 08:33:14

标签: python mysql mysql-python

我编写了一个小脚本来创建一个MySQL数据库,创建一个表(如果已经存在则先删除它),并插入许多条目。当我执行我的脚本时,它可以创建数据库和表,但不会向表中写入任何条目:

from warnings import filterwarnings
import MySQLdb as db


filterwarnings('ignore', category = db.Warning)
try:
    db_name = 'chom'
    con = db.connect(user='user', passwd='pass')
    cur = con.cursor()

    # Create new database
    cur.execute('CREATE DATABASE IF NOT EXISTS ' + db_name + ';')

    # Create PARAMETERS table
    cur.execute('DROP TABLE IF EXISTS ' + db_name + '.PARAMETERS;')
    query = ('CREATE TABLE ' + db_name + '.PARAMETERS ('
      'idPARAMETERS INT(10) NOT NULL AUTO_INCREMENT, '
      'Param_name VARCHAR(30) NULL DEFAULT NULL, '
      'Param_value VARCHAR(255) NULL DEFAULT NULL, '
      'Timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP '
      'ON UPDATE CURRENT_TIMESTAMP, '
      'User_id VARCHAR(20) NULL DEFAULT NULL, '
      'PRIMARY KEY (idPARAMETERS) );'
    )
    cur.execute(query)

    # Insert entries
    parameters = ['param1', 'param2', 'param3',
        'param4']

    for i, param_name in enumerate(parameters, start=1):
        cur.execute('INSERT INTO ' + db_name + '.PARAMETERS '
            '(idPARAMETERS, Param_name, Param_value, User_id) '
            'VALUES (' + str(i) + ', %s, %s, %s);',
            (param_name, '', 'user2@localhost'))

    cur.close()
    con.commit()
except Exception, e:
    print 'Error. Last query: ' + str(cur._last_executed)
    print e
print 'DB installation script finished'

我无法看到问题所在。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

代码工作正常,是mysql-workbench错误,没有显示正确的数据库内容(而mysql控制台客户端没有)。