无法在 Google Cloud SQL 上插入数据,但 UID 字段仍在自动递增

Unable to insert data on Google Cloud SQL but UID field is still AUTO incrementing

我正在 运行关注 MySQL 在 Google Cloud SQL 上的行为,我以前从未见过。

我们尝试的每个 MySQL 命令都来自 Python 脚本,除了 INSERT。我们可以创建 table 并显示 table,但是当我们插入数据时 - table 中什么也没有出现。然而,如果我们将完全相同的插入语句复制到 MySQL 命令行并 运行 它,插入工作正常。

但这是不寻常的部分。即使 Python 脚本无法插入数据,UID AUTO INCREMENT 字段也会为每个空的和失败的插入增加。例如,如果 Python 脚本无法插入一行,下次我们从 mySQL 命令行 运行 插入时,我们会看到 UID 字段增加了一个。

就好像MySQL开始插入数据,自动增加了UID字段,但是数据没有到达。

我们正在 Google Cloud SQL 上使用 MySQL。插入是一个简单的测试:

insert into queue (filename, text) VALUES ('test', 'test')

知道这是什么或如何调试吗?

事实证明 AUTOCOMMIT 在 Google Cloud SQL 上设置为 OFF。

所有 SQL 插入必须跟在提交语句之后。

例如:

import MySQLdb
db = mdb.connect(ip, login, pword)
query = "insert into tbname (entity, attribute) VALUES('foo', 'bar')" 
cursor = db.cursor()
cursor.execute(query)
db.commit()