他のプログラミング/スクリプト言語で作業していたので、私はPythonのmysqlインターフェイス(私は少しPythonに慣れています)に完全に困惑しました。私は最低限にコードを取り除いていますPython mysqlはコミットしません
#!/usr/bin/python
import mysql.connector as mariadb
mariadb_connection = mariadb.connect(user='testdb', password='testdb', database='testdb', host='127.0.0.1',autocommit=True)
mariadb_connection.autocommit=True
cursor = mariadb_connection.cursor(buffered=True)
cursor.execute("UPDATE testdb SET descr='konijn' WHERE number=14549")
mariadb_connection.commit()
mariadb_connection.close()
私は自動コミットがトリックを行うだろうと期待しているだろうが、そうでありません。また、mariadb_connection.commit()
は変更をコミットすることもありません。
number INTEGER,
type VARCHAR(255),
file VARCHAR(255),
year INTEGER,
month INTEGER,
descr VARCHAR(4096)
私はTCL/Tkのを使用して同じ資格情報を使用して、変更をコミットすることができていますので、アクセス許可の問題になることはありません。 データベースは、(限り、関連するため)です。
私は間違っていますか?
'number'の型がint型であることは確かですか? – roganjosh
はい。質問の表の説明を追加しました。 –
興味深い。あなたは 'print(cursor.execute(" "SELECT * FROM testdb WHERE number = 14549" ")。fetchall())'から何を得ますか? – roganjosh