当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MYSQL 有条件地插入记录

MYSQL
教你如何编写高效的MySQL数据库应用
解析MySQL数据库是如何对抗解密高手
MySQL常见问题集锦解答及技巧
透视MySQL数据库之更新语句
MYSQL的操作类(已封装)
windows环境下mysql数据库的主从同步备份步骤
优化MySQL数据库性能的八大“妙手”
安装与卸载MySQL系统服务(常见问题)
在SQL Server中快速删除重复记录
教你用Myisamchk进行崩溃恢复MySQL
再谈MySQL数据库备份恢复和乱码问题
一个MySQL数据备份/恢复的简易方法
教你如何将MySQL数据库的密码恢复
MySQL数据库中双机热备配置份过程
关于MySQL数据库基本调度策略的简介
让MySQL数据库自动恢复的具体操作
MySQL加强对PHP的支持--mysqlnd_php6
MYSQL初学者使用指南(下篇)
MYSQL初学者使用指南(上篇)
mysql中的替换语句

MYSQL 有条件地插入记录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 513 ::
收藏到网摘: n/a

在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。


问题:我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢?

答案:可以通过使用 EXISTS 条件句防止插入重复记录。


示例一:插入多条记录

假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:

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);

 

示例一:插入单条记录

 

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);

 

使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。