1. 程式人生 > >UPDATE操作出現主鍵衝突錯誤

UPDATE操作出現主鍵衝突錯誤

既然不是GC_Price表發生主鍵衝突,那隻能由其他的程式碼引起。那看看觸發器
mysql> show triggers like '%Price%'\G;
*************************** 1. row ***************************
             Trigger: t_price_changed_prid_insert
               Event: INSERT
               Table: GC_Price
           Statement: INSERT INTO BE_PRID_Changed(PRID,Type) VALUES (NEW.PRID,1);
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer:
[email protected]

character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
*************************** 2. row ***************************
             Trigger: t_price_changed_prid_update
               Event: UPDATE
               Table: GC_Price
           Statement: INSERT INTO BE_PRID_Changed(PRID,Type) VALUES (NEW.PRID,2)
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer:
[email protected]

character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
2 rows in set (0.00 sec)


查看錶BE_PRID_Changed的結構
mysql> show create table BE_PRID_Changed\G;
*************************** 1. row ***************************
       Table: BE_PRID_Changed
Create Table: CREATE TABLE `BE_PRID_Changed` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `PRID` int(12) NOT NULL COMMENT '來源PRID',
  `Type` tinyint(1) NOT NULL COMMENT '1 from insert  2 from update',
  `CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '建立時間',
  `Status` tinyint(1) DEFAULT '1' COMMENT '1待處理 2已處理 ',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2147483648 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


相關推薦

UPDATE操作出現衝突錯誤

既然不是GC_Price表發生主鍵衝突,那隻能由其他的程式碼引起。那看看觸發器吧 mysql> show triggers like '%Price%'\G; *************************** 1. row ***************************          

【20180719】記錄一次MariaDB主從復制由於tokudb出現1062錯誤問題

-h prepare prev ria tree 時間比較 make poi lin 記一次MariaDB主從復制的搭建 環境: 系統: CentOS release 6.3 內核: 2.6.32-431.23.3.el6.centos.plus.x86_64 數據庫版本

JDBC Update操作返回值和Insert操作返回

not null rest enc 不同 生成 statement -a AC ret JDBC Update操作返回值 在操作數據庫時,update操作會返回數據庫更新行數,但是在JDBC默認情況下則不會返回數據庫更新行數,這一點有所不同,在實際操作中可能會出現意想不到的

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.

【Java】sql實現插入,插入值的自增,防止遷移資料時報衝突錯誤

一、問題 我們要自己造一些測試資料,並且這些SQL指令碼要遷移到其他環境,遷移過程中,如果主鍵寫死,在其他環境,可能會出現主鍵衝突;所以,我們要寫活的主鍵,實現起來也很簡單; 二、解決方法 insert into userInfo(id,name,age)val

衝突的話就更新否則插入 (ON DUPLICATE KEY UPDATE

 INSERT INTO user_tag_exp (uid,tag,detail)VALUES(?,?,?) ON DUPLICATE KEY UPDATE detail=? 看程式竟然發現Mysql有這個功能! 以前寫的程式呀…………………… MySQL 自

mysql-不恰當的update語句使用和索引導致mysql死鎖

行修改 sql錯誤 狀態 還要 錯誤日誌 示意圖 http 概率 最小 背景知識:MySQL有三種鎖的級別:頁級、表級、行級。 MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);BDB存儲引擎采用的是頁面鎖(page-level l

java mybatis中insert 操作 返回的小技巧。。。。

res des lec oracl 嵌入 tid batis 元素 ble 第一種方式: 在實體類的映射文件 "*Mapper.xml" 這樣寫: <insert id="insertvmatedic" keyColumn="mdid" useGeneratedKe

數據表操作、外、唯一使用

MySQL表操作 MySQL主鍵使用 MySQL外鍵操作 MySQL唯一鍵使用 1、修改數據庫(比如修改字符集)mysql> alter database `DB` character set utf8;2、根據查詢結果建立數據表,註意這樣復制的數據表是不能將主鍵也復制過來的,也就是說此

MySQL online DDL 報錯 衝突

alter table tt  ENGINE=InnoDB ;  ERROR 1062 (23000): Duplicate entry '154878957' for key 'PRIMARY' 對一個大表 進行online DDL的時候偶爾回出現一下報錯 ,&nbs

sysbench花式採坑之二:自增值導致的衝突

上期《sysbench花式採坑之一:自增值導致的TPS不可靠》介紹到,在sysbench壓測過程中,如果自增值不為1會導致效能測試值偏高的現象,其實在發現這個現象之前,在單例項效能測試時我還遇到了一個主鍵衝突的問題。 | MySQL單例項sysbench壓測時出現主鍵衝突 《sys

向mysql插入資料,避免衝突報錯 duplicate key問題

在進行對資料庫進行資料插入的時候,往往因為重複插入,導致主鍵重複,導致程式報錯,duplicate key,其實只要邊插入變更新就行了,你的sql語句可能是這樣寫的: sql = "insert into simtable values(%s,%s,%s,

分表分庫後帶來問題(衝突

主鍵衝突問題分庫分表的環境中,資料分佈在不同的分片上,不能再借助資料庫自增長特性直接生成,否則會造成不同分片上的資料表主鍵會重複。新增資料>主鍵生成中心>分庫決策中心>切換相應庫>執行新增事務問題在執行分庫分表之後,由於資料儲存到了不同的庫上,資料庫事

MySQL衝突問題

1:主鍵衝突,增刪改 1:主鍵衝突- on duplicate key update 更新 1:基本語法 insert into 表名[(欄位列表)] values (值列表) 在資料插入的

MySQL忽略衝突,避免重複插入資料的三種方式

方案一:ignore插入時檢索主鍵列表,如存在相同主鍵記錄,不更改原紀錄,只插入新的記錄。INSERT IGNORE INTOignore關鍵字所修飾的SQL語句執行後,在遇到主鍵衝突時會返回一個0,代表並沒有插入此條資料。如果主鍵是由後臺生成的(如uuid),我們可以通過判

Mysql忽略衝突,避免重複插入的幾種方式

mysql忽略主鍵衝突,避免重複插入的幾種方式 本文章來給大家提供三種在MySQL中避免重複插入記錄方法,主要是講到了ignore,Replace,ON DUPLICATE KEY UPDATE三種方法,有需要的朋友可以參考一下 方案一:使用ignore關鍵字 如果是用主鍵primary或者唯一索引u

INSERT、UPDATE獲取隨意生成(selectKey)

XML檔案配置: 與resultType:返回值型別(主鍵型別,可省略) keyProperty:返回值儲存的屬性或對映指定值 順序:後/前, 後:先執行插入語句,再獲取主鍵 前:先行選擇主鍵列,再執行插入語句 statementType:STATEMENT

Oracle:SQL語句--對錶的操作——新增約束

–建立主外來鍵(可以在建立表的同時新增主外來鍵約束,也可以 –建立完成後再新增約束 ) —–方法一:表建立的同時,新增主鍵約束 語法: create table 表名 ( 列名1 資料型別及長度 constraint 主鍵名稱(一般主鍵名稱為”P

Mysql primary key衝突的可能性與解決方案

 在mysql中,資料的儲存其實相當於Oracle的IOT表。主鍵和其他列的值以b+tree的形式組織在一起,在其葉子節點上不僅包含了主鍵,還包含了其他列的值。所以,我們在訪問以主鍵作為where條件的查詢時,極大的提高了效率。當然,這也存在一個缺點,主鍵和其他列存在一起,導

Oracle中sequences使用時發生衝突

一,情況說明      最近現場生產環境,有十多個涉及序列的表,報主鍵衝突。     現場人員和公司開發人員,只是修改序列的當前值,修改完,開始好用,後來又報錯。    開發人員:之前有部分功能用錯序列,後來改正過來。這次確定不是用錯序列,需要我們協助分析。    現場實