mysql有條件插入數(shù)據(jù)_MySQL
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-09 18:13:22
mysql有條件插入數(shù)據(jù)_MySQL
mysql有條件插入數(shù)據(jù)_MySQL:bitsCN.com 要求是這樣的: 我有一個表存著基礎(chǔ)數(shù)據(jù)有一個字段是 管理號 我的目的是先查詢最新的管理號按照規(guī)則生成新管理號 然后insert到表里新數(shù)據(jù) 由于查詢并不鎖表 所以在查詢到insert這步中間會有可能兩線程查詢到相同的管理號? 關(guān)鍵是如下的MYSQ
導(dǎo)讀mysql有條件插入數(shù)據(jù)_MySQL:bitsCN.com 要求是這樣的: 我有一個表存著基礎(chǔ)數(shù)據(jù)有一個字段是 管理號 我的目的是先查詢最新的管理號按照規(guī)則生成新管理號 然后insert到表里新數(shù)據(jù) 由于查詢并不鎖表 所以在查詢到insert這步中間會有可能兩線程查詢到相同的管理號? 關(guān)鍵是如下的MYSQ
bitsCN.com
要求是這樣的: 我有一個表存著基礎(chǔ)數(shù)據(jù)有一個字段是 管理號 我的目的是先查詢最新的管理號按照規(guī)則生成新管理號 然后insert到表里新數(shù)據(jù) 由于查詢并不鎖表 所以在查詢到insert這步中間會有可能兩線程查詢到相同的管理號? 關(guān)鍵是如下的MYSQL語句, 插入多條記錄: [sql] INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id, supplier_name, 'advertising' FROM suppliers WHERE not exists (select * from clients where clients.client_id = suppliers.supplier_id); 插入單條記錄: [sql] INSERT INTO clients (client_id, client_name, client_type) SELECT 10345, 'IBM', 'advertising' FROM dual WHERE not exists (select * from clients where clients.client_id = 10345); 所以在插入時可以檢測管理號存在不存在,插入若不成功則取出目前的最新管理號,重新計算后再插入,直至成功。 這種情況很多的,比如火車、影院售票等,由于并發(fā)處理量很大,往往查詢到有票的,但實際下單時此票已售出,不知道這些系統(tǒng)是如何處理的。 作者 meditatorzhang bitsCN.com
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
mysql有條件插入數(shù)據(jù)_MySQL
mysql有條件插入數(shù)據(jù)_MySQL:bitsCN.com 要求是這樣的: 我有一個表存著基礎(chǔ)數(shù)據(jù)有一個字段是 管理號 我的目的是先查詢最新的管理號按照規(guī)則生成新管理號 然后insert到表里新數(shù)據(jù) 由于查詢并不鎖表 所以在查詢到insert這步中間會有可能兩線程查詢到相同的管理號? 關(guān)鍵是如下的MYSQ