mysql有条件插入数据

xiaoxiao2021-02-28  125

要求是这样的:

  我有一个表存着基础数据有一个字段是 管理号 我的目的是先查询最新的管理号按照规则生成新管理号 然后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);      所以在插入时可以检测管理号存在不存在,插入若不成功则取出目前的最新管理号,重新计算后再插入,直至成功。     这种情况很多的,比如火车、影院售票等,由于并发处理量很大,往往查询到有票的,但实际下单时此票已售出,不知道这些 系统是如何处理的。
转载请注明原文地址: https://www.6miu.com/read-65934.html

最新回复(0)