向mysql插入資料,避免主鍵衝突報錯 duplicate key問題
在進行對資料庫進行資料插入的時候,往往因為重複插入,導致主鍵重複,導致程式報錯,duplicate key,其實只要邊插入變更新就行了,你的sql語句可能是這樣寫的:
sql = "insert into simtable values(%s,%s,%s,%s)" % a,b,c,d
當有主鍵重複輸入時,就會報錯,逐漸重複,
而,如果這樣寫:
sql ="insert into simtable values(%s,%s,%s,%s) on duplicate key update title1 = %s,title2 = %s" % a,b,c,d,e,f
當有重複主鍵被插入時,則更新資料,不會報錯。
相關推薦
向mysql插入資料,避免主鍵衝突報錯 duplicate key問題
在進行對資料庫進行資料插入的時候,往往因為重複插入,導致主鍵重複,導致程式報錯,duplicate key,其實只要邊插入變更新就行了,你的sql語句可能是這樣寫的: sql = "insert into simtable values(%s,%s,%s,
MYSQL插入資料後返回主鍵
最近做專案,要求不能使用mybatis等框架,所以一切資料庫訪問操作都是用原生的JDBC。 用過mybatis的都知道,插入新資料後可以直接返回主鍵的值,但是使用JDBC不行,於是上網搜了一下,找到一個還蠻好用的方法: SELECT LAST_INSERT_ID();
Mysql 插入資料存在時執行update操作:ON DUPLICATE KEY UPDATE
-- 建立表:test: CREATE TABLE `test` ( `objId` int(10) NOT NULL, `orgId` int(10) NOT NULL, `objName` varchar(50) NOT NULL, PRIMARY KE
Mysql和Mybatis獲取新插入資料自增主鍵的值
Mysql 首先就是mysql獲取最近插入資料id的查詢方法 mysql為我們提供了查詢最近插入自增主鍵ID的值 獲取剛插入的自增長id的值 insert into user (username,age,address) VALUES ('abc',18
mybatis插入資料時返回主鍵(mysql資料庫)
第一種方式使用useGeneratedKeys屬性 User類 public class User { private i
Mybatis_插入資料後返回主鍵ID_返回資料欄位與類中欄位相對應
目的:利用mapper 向資料庫中插入記錄,並返回主鍵ID 注意返回資料的名字需要與類中欄位相對應上 若不對應上會出現以下錯誤: JavaBean XXXMapper.xml中的SQL 正
Mybatis 插入資料時返回主鍵的方法
mysql插入資料後獲得主鍵 針對自增主鍵的表,在插入時不需要主鍵,而是在插入過程自動獲取一個自增的主鍵,比如MySQL, <insert id="add" parameterType="vo.Category" useGeneratedKeys="t
Oracle 在插入資料後獲取主鍵ID的解決辦法
Mybatis批量插入返回自增主鍵: 對於支援生成自增主鍵的資料庫:useGenerateKeys和keyProperty 不支援生成自增主鍵的資料庫:<selectKey> 1、Oracle資料庫中建立自增序列 create sequence ARCHI
java向mysql插入時間,時間日期格式化
java向MySQL插入當前時間的幾種方式和java時間日期格式化的幾種方法:(資料參考網路資源) java向MySQL插入當前時間的幾種種方式 第一種:將java.util.Date型別的時間轉成mysql資料庫識別的java.sql.Date型別時間
Mybatis插入資料後返回主鍵id
有時候使用mybatis插入資料後,需要用到記錄在資料庫中的自增id,可以利用keyProperty來返回,賦值給實體類中的指定欄位。 單條記錄插入並返回 First, if your database supports auto-generated key fields (e.g. MySQL and SQ
servlet 向mysql 插入中文,在mysql 查詢時發現中文是亂碼
資料庫連線串中指定編碼 url ="jdbc:mysql://localhost:3306/dlmp?useUnicode=true&characterEncoding=utf-8"; 將mysql 的客戶端查詢結果集設定編碼 set chara
mysql插入自動增長的主鍵後如何獲得該主鍵的值
解決方案:使用函式 LAST_INSERT_ID()用法: 如檢視最新一次自增得到的id: select LAST_INSERT_ID();問題是解決了,但是會不會存在一個問題:我先使用自增主鍵的sql語句插入了值,然後就呼叫 LAST_INSERT_ID()這個函式,
使用Java向MySQL插入datetime,防止時分秒資訊丟失
問題 使用java.util.Date無法直接插入MySQL,似乎 必須使用java.sql.Date 如果在MySQL中使用timestamp(時間戳),所能表示的時間有限 將java.util.
mybatis如何獲取oracle新插入資料記錄的主鍵?
第一 用序列 <insert id="insertSelective" parameterType="com.zehin.vpaas.base.domain.SfyHazardAnal
C#向MySql插入資料的時候中文變為亂碼
基本上是編碼問題,找了很久後來發現直接在資料庫的連線字串上寫:charset=utf8; 就可以解決了。 如: charset=utf8;******;User Id=******;password=******;Database=******;
mybatis獲取mysql插入的自增主鍵配置方法
使用selectKey的方式獲取主鍵,相當於呼叫了MySql的LAST_INSERT_ID()函式,意思是查詢最後一次插入的ID,相當於執行了兩條語句。 具體方法:改*mapper.xml檔案的如下位置:(驗證過有效) 另外一種方式參考如下圖: 兩種方式的主鍵獲取方式都
oracle的insert操作,忽略主鍵衝突問題
merge into table_a a using table_b b on(a.id=b.id) when not matched then insert(a.id,a.col,a.col2.....) values(b.id,b.col,b.col2.
Hibernate儲存資料自動生成主鍵出現奇怪異常Duplicate entry '0' for key 1
今天在寫一塊程式的時候,出現了一個異常資訊,搗鼓了一上午,終於找到了異常原因——不僅僅是簡單的主鍵衝突問題 測試資料庫:MySQL 異常資訊如下: org.hibernate.exception.ConstraintViolationException: could no
MySQL忽略主鍵衝突,避免重複插入資料的三種方式
方案一:ignore插入時檢索主鍵列表,如存在相同主鍵記錄,不更改原紀錄,只插入新的記錄。INSERT IGNORE INTOignore關鍵字所修飾的SQL語句執行後,在遇到主鍵衝突時會返回一個0,代表並沒有插入此條資料。如果主鍵是由後臺生成的(如uuid),我們可以通過判
Mysql忽略主鍵衝突,避免重複插入的幾種方式
mysql忽略主鍵衝突,避免重複插入的幾種方式 本文章來給大家提供三種在MySQL中避免重複插入記錄方法,主要是講到了ignore,Replace,ON DUPLICATE KEY UPDATE三種方法,有需要的朋友可以參考一下 方案一:使用ignore關鍵字 如果是用主鍵primary或者唯一索引u