`
aerchi
  • 浏览: 424172 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
文章分类
社区版块
存档分类
最新评论

MySQL 当记录不存在时插入,当记录存在时更新

阅读更多
MySQL 当记录不存在时插入,当记录存在时更新
网上基本有三种解决方法。

第一种:

示例一:插入多条记录

假设有一个主键为 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 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。

DEMO:

INSERT into at_dsh_temp_baseline (caseID,fStep,fStepDesc,htmlText,resultImage,version,buildVersion,envID) SELECT '8', '2', 'This is a test', '================The page display Error, please Check================', 'D:\\test\\20130315-162003_webpage.jpg', 'V12', 'B20130312194', '4' FROM at_dsh_temp_baseline WHERE not exists (select * from at_dsh_temp_baseline where caseID='8' and fStep='2' and version='V12' and envID='4')










分享到:
评论

相关推荐

    mysql 记录不存在时插入 记录存在则更新的实现方法

    相信很多人都需要用到这个语句,请看下文:(在4.1以后的版本才有效)

    mysql插入记录防止乱码

    mysql插入记录防止乱码,这是我在编程时通过网上下载来的资料,解决了我用VFP或者JAVA插入记录的问题。

    MySQL数据库:单条数据记录的插入一.pptx

    若表名后不给出列名,则在VALUES子句中要给出每一列(除IDENTITY和timestamp类型的列)的值,如果列值为空,则值必须置为NULL,否则会出错。VALUES子句中的值: (1)表达式:可以是一个常量、变量或一个表达式,也...

    mysql insert if not exists防止插入重复记录的方法

    MySQL 当记录不存在时插入(insert if not exists) 在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的...

    mysql 判断记录是否存在方法比较

    把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入。

    Mysql – 如果数据库表中的记录存在相同记录则不插入记录,反之插入。

    根据设置了主索引 PRIMARY 的字段进行判断,如果字段相同则不做插入记录操作,反之插入。 准备 (1)一个数据库表,结构如下: (2)必须设置 需要依靠此字段来判断记录是否相同的 主索引字段,我设置的如下: 假设...

    mysql 存在该记录则更新,不存在则插入记录的sql

    非常不错的功能,主要用于更新特定的记录,如果存在这条记录则更新一下,如果不存在则插入记录。应用于配置文件等。

    mysql清除记录数

    1.mysql清空表语句后,新插入的语句会ID会以之前存在的序号记录下去,使用truncate命令清除记录,新插入的语句从1开始 示例: mysql> select id from t1; +----+ | id | +----+ | 1 | | 2 | | 3 | +----+ 清空表 ...

    易语言源码易数据库插入空记录的几种思路.rar

    易语言源码易数据库插入空记录的几种思路.rar 易语言源码易数据库插入空记录的几种思路.rar 易语言源码易数据库插入空记录的几种思路.rar 易语言源码易数据库插入空记录的几种思路.rar 易语言源码易数据库插入空...

    mysql的插入问题 怎么获得自动增长的ID

    一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 还是MYSQL的,一张表有还是有ID自增主键,用JDBC insert一条语句之内,怎么在JAVA...

    防止mysql重复插入记录的方法

    防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了。 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,...

    jdbc 插入记录并返回自增主键值

    java 利用 jdbc 向 mysql 数据库插入记录并返回插入记录生成的主键值

    kettle 增量更新并标识删除的记录

    ETL之kettle 增量更新并标识删除的记录 不删除原始数据

    mysql如何优化插入记录速度

    对于非空表插入记录时,MySQL会根据表的索引对插入记录建立索引。如果插入大量数据,建立索引会降低插入记录的速度。为了解决这种情况可以在插入记录之前禁用索引,数据插入完毕后在开启索引。禁用索引的语句为: ...

    mybatis 获取mysql插入记录的自增长字段值.pdf

    mybatis 获取mysql插入记录的自增长字段值

    MySQL命令大全

    在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如...

    Mysql学习心得之插入、更新、删除记录

    下面通过图文并茂的方式给大家详解Mysql学习心得之插入、更新、删除记录。 插入记录 代码如下: Insert[]into] tb1_name[(col_name,…..)] 自动编号的字段,可以用values default Default 可以赋予默认值 代码如下...

    MySQL 在触发器里中断记录的插入或更新?

    思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。 mysql> create table t_control(id int primary key); Query OK, 0 rows affected (0.11 sec) mysql> insert into t_control values (1); Query OK, ...

    MySql避免重复插入记录的几种方法

    如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: 代码如下: INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES (‘test9@163.com’, ‘99999’, ...

Global site tag (gtag.js) - Google Analytics