Mysql衝突更新 mysql 主鍵衝突更新

2021-10-17 23:50:25 字數 1425 閱讀 8291

mysql的特殊功能,在主鍵衝突的情況下,可以根據主鍵進行更新資料

建表語句:

-- 全量指令碼

-- 建立表 tb_day_hold(持倉表)的當前表

select 'create table tb_day_hold-持倉表...';

drop table if exists tb_day_hold;

create table tb_day_hold

firm_account smallint default 0 not null,

seat_no varchar(8) default ' ' not null,

stock_account varchar(15) default ' ' not null,

exchange_type varchar(4) default ' ' not null,

stock_name varchar(32) default ' ' not null,

stock_code varchar(6) default ' ' not null,

amount decimal(19,2) default 0.0 not null,

market_value decimal(19,2) default 0.0 ,

position_str varchar(100) default ' ' not null,

primary key(stock_account, exchange_type, stock_code)

-- 公升級指令碼

新增或者更新的語句:

insert into tb_day_hold (

firm_account ,

seat_no ,

stock_account ,

exchange_type ,

stock_name ,

stock_code ,

amount ,

market_value ,

position_str

)values (

# ,# ,

# ,# ,

# ,# ,

# ,# ,

#on duplicate key update

amount = amount + values(amount) , seat_no = values(seat_no)

注意:表中的列名稱是amount,我傳遞去的是occur_amount

在主鍵衝突的情況下,使用 on duplicate key update

注意,後面沒有 set 關鍵字

在主鍵衝突的情況下,我需要 amount=amount+occur_amount,在sql語句中使用的是 amount = amount + values(amount)

其中 values(amount) 就為我傳遞進入的 occur_amount 的具體值

Mysql雙主自增長衝突處理

多主互備和主從複製有一些區別,因為多主中都可以對伺服器有寫許可權,所以設計到自增長重複問題 出現的問題 多主自增長id重複 1 首先我們通過a,b的test表結構 2 掉a,在b上對資料表test 存在自增長id 執行插入操作,返回插入id為1 3 後停掉b,在a上對資料表test 存在自增長id ...

Mysql雙主自增長衝突處理

mysql雙主自增長衝突處理 多主互備和主從複製有一些區別,因為多主中都可以對伺服器有寫許可權,所以設計到自增長重複問題 出現的問題 多主自增長id重複 1 首先我們通過a,b的test表結構 2 掉a,在b上對資料表test 存在自增長id 執行插入操作,返回插入id為1 3 後停掉b,在a上對資...

mysql 3台主主 mysql主主

設定主 主複製 1 在兩台伺服器上各自建立乙個具有複製許可權的使用者 2 修改配置檔案 主伺服器上 mysqld server id 10 log bin mysql bin relay log relay mysql relay log index relay mysql.index auto i...