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...