Я написал небольшой скрипт для создания базы данных MySQL
, создания таблицы (ранее ее стереть, если она уже существует) и вставить много записей. Когда я исполню мой сценарий, он работает создание базы данных и таблицы, но не писать запись в таблицу:Python MySQLdb: создание базы данных и таблица заполнения
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, '', '[email protected]'))
cur.close()
con.commit()
except Exception, e:
print 'Error. Last query: ' + str(cur._last_executed)
print e
print 'DB installation script finished'
Я не могу видеть, где проблема. Есть идеи?
В любом случае, я выполнил сценарий, который вы опубликовали, - он работает для меня, и я вижу, что записи вставляются в таблицу «PARAMETERS». Вы уверены, что проверяете ту же базу данных и таблицу, в которую вы вставляете? – alecxe
@alecxe Вы правы: это действительно работает. Я не должен полагаться на программное обеспечение mysql-workbench. Пожалуйста, ответьте, говоря, что mysql-workbench - это часть дерьма, и я приму свой ответ за помощь yoru. –
ha, я использую MySQL Workbench в Linux, запускаю ваш скрипт, и все работает штрафами. Интересно, как воспроизвести ваш случай – ZZY