Python操作MySQL資料庫

來源:互聯網
上載者:User

標籤:try   忽略   prim   tab   使用   handle   lin   ldb   pac   

在MYSQL中,運行INSERT INTO 插入語句中的欄位是否一定要把該表的欄位全部填上?

例如表tab_name有(col1,col2,col3,col4)4個欄位。
只填你需要添的,就要把列名寫上values後對應列值,
文法:insert into tab_name (col1,col2,col3) values(val1,val2,val3);

如果你想省略列名,那就要把所有欄位的值都填上了,
文法:insert into tab_name values(val1,val2,val3,val4);

MySQL資料庫,插入重複資料
sql = "INSERT  INTO test_c(id,name,sex)values(%s,%s,%s)"  param = (1,‘AJ‘,‘MAN‘)  n = cursor.execute(sql,param)  db.commit() 

 

當我們使用普通的 “INSERT INTO" 插入資料,如果資料有重複就會有報錯:
提示的是索引值重複

Traceback (most recent call last):    File "D:/python/tongbu_py/test.py", line 14, in <module>      n = cursor.execute(sql,param)    File "D:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute      self.errorhandler(self, exc, value)    File "D:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler      raise errorclass, errorvalue  _mysql_exceptions.IntegrityError: (1062, "Duplicate entry ‘1-AJ-MAN‘ for key ‘PRIMARY‘")  

 

我們可以使用另外2個傳入方法: ”INSERT IGNORE INTO 和 REPLACE INTO“

INSERT IGNORE會忽略資料庫中已經存在的資料,如果資料庫沒有資料,就插入新的資料,如果有資料的話就跳過這條資料。這樣就可以保留資料庫中已經存在資料,達到在間隙中插入資料的目的

REPLACE INTO 如果存在primary 或 unique相同的記錄,則先刪除掉。再插入新記錄。

Python操作MySQL資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.