Python MySQL缓存在Python端
各位,我真的不知道如何解决我的问题,我认为这是关于缓存(内存)错误。 我正在测试使用CloudProxy在本地运行python与GoogleClousQL-MYSQL的连接 我遇到了一个问题,我的表的自动增量ID在python端本地出现了问题,对此我非常陌生 我所做的是Python MySQL缓存在Python端,mysql,python-3.x,caching,google-cloud-sql,pymysql,Mysql,Python 3.x,Caching,Google Cloud Sql,Pymysql,各位,我真的不知道如何解决我的问题,我认为这是关于缓存(内存)错误。 我正在测试使用CloudProxy在本地运行python与GoogleClousQL-MYSQL的连接 我遇到了一个问题,我的表的自动增量ID在python端本地出现了问题,对此我非常陌生 我所做的是 从代码中删除了connection.commit(),以测试它是否可以在不提交()的情况下插入到cloudSQL 运行python文件几次,数据显示在本地终端上,但不显示在云数据库上 将connection.commit()放回
import mysql.connector
connection = mysql.connector.connect(host='127.0.0.1',
user='root',
password='root',
db='account')
con = connection.cursor()
firstname = "Test123"
lastname = "Test123"
phone = "1234567890"
email = "yi@gmail.com"
address1 = "RMIT Street"
address2 = "Melbourne"
postcode = "1234"
state = "VIC"
username = "test111"
password = "abc123"
#userid will auto increment
statement = "INSERT INTO user (firstname, lastname, phone, email, address1, address2, postcode, state, username, password) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
value = (firstname,lastname,phone,email,address1,address2,postcode,state,username,password)
con.execute(statement,value)
connection.commit()
con.execute("select * from user")
for a,b,c,d,e,f,g,h,i,j,k in con.fetchall():
print (a,b,c,d,e,f,g,h,i,j,k)
这不是Python的问题,这是意料之中的。 看起来您有一些失败的插入,而InnoDB实际上是一个事务引擎 范例- 会话A插入记录1 会话B插入记录2 C部分插入记录3 会话D失败并回滚 现在插入的下一个id是4,但3不在那里 参考-
看起来很相似,但我用python文件在本地运行它,数据库托管在Google Cloud上,有没有办法防止这种情况发生在插入失败的情况下?我想你可以使用
AUTO_INCREMENT=2
创建如下表-CREATE table foo(id int(11)NOT NULL AUTO_INCREMENT,name int(11)默认为空,主键(id),唯一键uniqname(name))引擎=InnoDB自动增量=2