Welcome 微信登录

首页 / 数据库 / MySQL / MySQL有条件插入数据

要求是这样的:我有一个表存着基础数据有一个字段是 管理号 我的目的是先查询最新的管理号按照规则生成新管理号 然后insert到表里新数据  由于查询并不锁表 所以在查询到insert这步中间会有可能两线程查询到相同的管理号?关键是如下的MYSQL语句,插入多条记录:
  1.    
  2. INSERT INTO clients   
  3. (client_id, client_name, client_type)   
  4. SELECT supplier_id, supplier_name, "advertising"   
  5. FROM suppliers   
  6. WHERE not exists (select * from clients   
  7. where clients.client_id = suppliers.supplier_id);   
插入单条记录:
  1.    
  2. INSERT INTO clients   
  3. (client_id, client_name, client_type)   
  4. SELECT 10345, "IBM""advertising"   
  5. FROM dual   
  6. WHERE not exists (select * from clients   
  7. where clients.client_id = 10345);   
所以在插入时可以检测管理号存在不存在,插入若不成功则取出目前的最新管理号,重新计算后再插入,直至成功。 这种情况很多的,比如火车、影院售票等,由于并发处理量很大,往往查询到有票的,但实际下单时此票已售出,不知道这些系统是如何处理的。Oracle其他数据对象 -- 索引MySQL从两个表中选择数据并统一排序相关资讯      MySQL数据库 
  • MySQL数据库重命名的方法  (06/16/2015 20:17:43)
  • 10款最好用的MySQL数据库客户端图  (01/07/2015 15:05:35)
  • Linux系统入门学习:命令行创建一  (10/11/2014 07:29:28)
  • MySQL之终端(Terminal)管理数据  (03/02/2015 17:03:41)
  • C语言访问MySQL数据库的方法  (11/17/2014 23:10:15)
  • 给Linux用户的11个高级MySQL数据库  (08/15/2014 16:41:16)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图