程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql有條件插入數據

mysql有條件插入數據

編輯:MySQL綜合教程

要求是這樣的:   我有一個表存著基礎數據有一個字段是 管理號 我的目的是先查詢最新的管理號按照規則生成新管理號 然後insert到表裡新數據  由於查詢並不鎖表 所以在查詢到insert這步中間會有可能兩線程查詢到相同的管理號?     關鍵是如下的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);      所以在插入時可以檢測管理號存在不存在,插入若不成功則取出目前的最新管理號,重新計算後再插入,直至成功。     這種情況很多的,比如火車、影院售票等,由於並發處理量很大,往往查詢到有票的,但實際下單時此票已售出,不知道這些系統是如何處理的。       作者 meditatorzhang

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved