我其實主要是想插入多行資料,讓程式自動生成主鍵,在網上看到一個方法sql=insert{}{}{} ,sql.format 具體見下圖,但是回傳報錯,回傳報錯稱表中欄位和所插入資料欄位不一致,我數了一下,上下都是相互對應的數量也一致,是不是因為我只是選擇表中部分欄位進行插入造成的?再下一張圖是通過另一種方式插值,就可以成功。請大家指正,我圖1是哪里錯了?或者有其他自增主鍵的方式可以成功插入也行,請大家賜教
uj5u.com熱心網友回復:
這種問題也好意來問。你把第一種的插入陳述句也帶上 列名,然后和后面VALUES里面的項 一一對應,立刻就發現問題了。
uj5u.com熱心網友回復:
是已經檢查過了才上來問的,看的別人的博客也是這樣寫的,除去sql中有個自增的UUID外,其他的都是一一匹配的。能想到的可能發生錯誤的地方就是UUID是否占了一個列,但是這是自增,后面inser_sql自然不知道怎么添加欄位對應;其次就是只是插入了表中部分欄位,也都用測驗表試過了,仍舊是列不匹配。在自己理解的范圍內仍舊找不出問題,在網上尋求幫助,有什么不好意思的?
uj5u.com熱心網友回復:
你那個第一個insert 陳述句后面多了個 Now()是什么情況?就不能寫成標準的形式, insert into table(列1, 列2,....) values(值1,值2......)
多寫幾個列名會累死么?
我實踐中都是要寫列名的,從來不依靠默認情況。
不然以后表里增加了欄位,insert陳述句就出錯了。
uj5u.com熱心網友回復:
我要回答一下這個問題,當時自己對資料庫也不是很了解,有些資料庫可以將主鍵設定成自增型別的,即插入資料主鍵自增。第二個方式是在python腳本段獲得一個獨一無二的主鍵形式,>>> import uuid
>>> idd=str(uuid.uuid1())
>>> idd
'5eb8fcf4-b47d-11e7-b74b-1c872c432953'
>>> idd.replace('-','')
'5eb8fcf4b47d11e7b74b1c872c432953'
>>>
uj5u.com熱心網友回復:
自增主鍵 可填寫 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/92301.html
