我正在使用mysql connector.Python 1.0.9從MySQL網站下載。使用多個SQL語句更新數據庫
我有一個樣品table here
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT UNIQUE,
Shot VARCHAR(4),
sec varchar(5),
lay VARCHAR(15) NOT NULL,
lay_status VARCHAR(15) NOT NULL,
blk VARCHAR(10) NOT NULL,
blk_status VARCHAR(15) NOT NULL,
pri VARCHAR(10) NOT NULL,
pri_status VARCHAR(15) NOT NULL,
ani VARCHAR(10) NOT NULL,
ani_status VARCHAR(15) NOT NULL,
status VARCHAR(5)
);
INSERT INTO my_table VALUES
(1,'SH01','3','1863','yes','1863','yes','P4645','yes','P4557','yes','Over'),
(2,'SH02','2.5','1863','yes','P4645','no','P4557','yes','1863','no','Over'),
(3,'SH03','0.5','P4645','yes','P4557','yes','1863','yes','1863','yes','WIP'),
(4,'SH04','1.25','1863','no','P4645','no','P4557','yes','1863','yes','RTK'),
(5,'SH05','1','1863','yes','1863','yes','P4645','yes','P4557','yes','WIP'),
(6,'SH06','6','P4557','yes','P4645','yes','P4645','yes','P4557','yes','WIP');
我能夠如下執行一個SQL statment。
import mysql.connector
cnx = mysql.connector.connect(user='scott', database='test')
cursor = cnx.cursor()
SQL = '''
update my_table
set
LAY = 'P6682'
, BLK = 'P6682'
, ANI = 'P6682'
where
Shot = 'SH01';
'''
cursor.execute(SQL)
和一切都很好,數據庫得到正確更新。
現在,當我試圖更新多條語句的數據庫如下
import mysql.connector
cnx = mysql.connector.connect(user='scott', database='test')
cursor = cnx.cursor()
SQL = '''
update my_table
set
LAY = 'P6682'
, BLK = 'P6682'
, ANI = 'P6682'
where
Shot = 'SH01';
update my_table
set
LAY = '1863'
, BLK = '1863'
, ANI = '1863'
where
Shot = 'SH02'
'''
cursor.execute(SQL)
cnx.commit()
cur.close()
cnx.close()
cnx.disconnect()
我得到下面引用錯誤
Traceback (most recent call last):
File "Test_Module.py", line 24, in
File "C:\Python26\Lib\site-packages\mysql\connector\cursor.py", line 396, in execute
"Use multi=True when executing multiple statements")
InterfaceError: Use multi=True when executing multiple statements
更新我的命令,如下
cursor.execute(SQL,multi = True)
cnx.commit()
cur.close()
cnx.close()
cnx.disconnect()
現在我沒有得到任何錯誤/追蹤。但數據庫沒有得到更新。
任何人都可以告訴我我在哪裏做錯了。
謝謝!我花了數小時試圖弄清楚爲什麼這不起作用。 – joel3000 2015-11-22 07:05:23
如果一個mysql.connector大師可以_explain_爲什麼需要for循環,那將會很棒。 – user1717828 2018-01-04 22:58:18