2014-01-10 61 views
0

我想執行以下類似的2型SQL查詢。當一個查詢被成功執行,但另一種是給錯誤在插入操作的Python和MySQL的SQL語法錯誤

db = MySQLdb.Connection(host="192.168.1.90", port=3306, user="some", passwd="some", db="some") 
cur = db.cursor() 
cur.executemany("""INSERT INTO test (timepacket,model_no,cycle_time,target,plan,count,difference,bekido,linenumber,shift,runningstatus,remarks) VALUE (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""", datater) 
db.commit() 
cur1 = db.cursor() 
cur1.executemany("""INSERT INTO delay (running,change,nomaterial,breakdown,quality,noplan,line,shift) VALUE(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""", datater1) 
db.commit() 
db.close() 

第一個查詢,而第二個查詢給錯誤

1064,「您的SQL語法錯誤好的工作;檢查手冊,它對應於您的MySQL服務器版本,以便在'change,nomaterial,breakdown,quality,noplan,line,shift'附近使用正確的語法)VALUE(507,0,0,0,0,0,1,1)'at第1行「) 任何人都可以幫我解釋它爲什麼會發生?

回答

2

changereserved keyword。如果您命名了一列「更改」,您將需要用蜱包裝它。

(我不是一個Python開發,所以我猜測這是正確的):

cur1.executemany("""INSERT INTO delay (running,`change`,nomaterial,breakdown,quality,noplan,line,shift) VALUE(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""", datater1)