`

MySQL插入数据时,如果记录不存在则insert,如果存在则update

 
阅读更多

第一步,将数据表不能重复的字段设置唯一索引(例如pro_name不能重复则为其设置唯一索引)

 

第二步,运行以下参考语句

 

 

/**************************从预算获取******************************/

/*INSERT INTO bus_pro_base_info  

(id, `subject_code`, `subjectl_name`, `office_name`, `pro_name`, `pro_code`, `budgetary_money`, `review_money`, org_id, org, dept_id, dept_name, attribute01, create_date, create_by) 

SELECT 

REPLACE(UUID(),'-',''), bu.subject_code, bu.subjectl_name, bu.office_name, bu.pro_name, bu.pro_code, bu.review_value, bu.reviewed_value, 

bu.org_id, bu.org, bu.dept_id, bu.dept_name, "来自预算", bu.create_date, bu.create_by 

FROM bus_pro_budget_approval bu

on duplicate key update 

subject_code = bu.subject_code, subjectl_name = bu.subjectl_name, office_name = bu.office_name, pro_name = bu.pro_name, pro_code = bu.pro_code, 

budgetary_money = bu.review_value, review_money = bu.reviewed_value, org_id = bu.org_id, org_id = bu.org_id, 

org = bu.org, dept_id = bu.dept_id, dept_name = bu.dept_name, attribute01 = "来自预算";*/

 

/**************************从结算算获取******************************/

/*INSERT INTO bus_pro_base_info  

(id, `subject_code`, `subjectl_name`, `office_name`, `pro_name`, `pro_code`, `company`, `check_money`, final_money, org_id, org, dept_id, dept_name, attribute02, create_date, create_by) 

SELECT 

REPLACE(UUID(),'-',''), c.subject_code, c.subjectl_name, c.office_name, c.pro_name, c.pro_code, c.build_unit, c.subtract_money, c.final_money,

c.org_id, c.org, c.dept_id, c.dept_name, "来自结算", c.create_date, c.create_by 

FROM bus_pro_closeapprove c

on duplicate key update 

subject_code = c.subject_code, subjectl_name = c.subjectl_name, office_name = c.office_name, pro_name = c.pro_name, pro_code = c.pro_code, 

company = c.build_unit, check_money = c.subtract_money, final_money = c.final_money, org_id = c.org_id, attribute02 = "来自结算";*/

 

/*SELECT count(*) FROM bus_pro_base_info WHERE attribute01 = '来自预算' ;*/

/*SELECT * FROM bus_pro_base_info WHERE attribute01 IS NULL && attribute02 IS NULL;*/

/*SELECT * FROM bus_pro_base_info WHERE attribute01 IS  NOT NULL OR attribute02 IS NOT NULL;*/

分享到:
评论

相关推荐

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    mysql如何实现 如果存在就更新,不存在再插入

    mysql如果数据不存在,则插入新数据,否则更新的实现方法

    //如果不存在,则插入新数据 $sql = “INSERT INTO {$ecs->table(‘cat_lang’)} (cat_id,lang_id,cat_name,keywords,cat_desc) VALUES({$cat_id},{$k},'{$val[‘cat_name’]}’,'{$val[‘keywords’]}’,'{$val[...

    mysql数据库Insert语句后面加ON DUPLICATE KEY UPDATE,保证唯一性1

    mysql数据库Insert语句后加ONDUPLICATE KEY UPDATE,保证唯性如果在INSERT语句末尾指定了ON DUPLICATE KEY UP

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

    INSERT table (auto_id, auto_name) values (1, ‘yourname’) ON DUPLICATE KEY UPDATE auto_name=’yourname’ON DUPLICATE KEY UPDATE的使用 如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个...

    根据表名及字段,自动生成insert,update,select语句

    首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...

    MySQL命令大全

    如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限...

    MySQL select、insert、update批量操作语句代码实例

    项目中经常的需要使用批量操作语句对数据进行操作,使用批量语句的时候需要注意MySQL数据库的条件限制,这里主要是数据的大小限制,这里对批量插入、批量查找及批量更新的基础操作进行下简单的汇总。 1、批量insert...

    MySql插入数据成功但是报[Err] 1055错误的解决方案

    1.问题: 这两天做insert操作,...以上所述是小编给大家介绍的MySql插入数据成功但是报[Err] 1055错误的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对

    MySQL-DML数据操作语言.sql

    MySql数据操作语言,包括 插入:insert、 修改:update、 删除:delete的相关语法和案例脚本。对学习MySql有很大的帮助。

    MySql insert插入操作的3个小技巧分享

    1.插入的数据来源自其他表 ...2.插入时排除(忽略)重复记录 现表A中有一部分记录了,再做如1中的插入操作可能遇到重复的key导致操作失败 代码如下: insert ignore into A(id,cola) select id,cola from B where

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

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

    MySql三种避免重复插入数据的方法

    insert ignore 会忽视数据库中已经存在的数据,根据主键或者唯一索引判断,如果数据库没有数据,就会插入新的数据,如果有数据的话就跳过这条数据 小case 表结构 root:test> show create table t3G **************...

    mysql-update-insert-transform

    mysql-update-insert(-ajax)-transform 用于将 MySQL 插入语句转换为更新语句,反之亦然的工具。 在 MySQL Workbench 中,可能与许多其他工具一样,您可以输出插入和更新语句。 这很有帮助,但您必须再次编辑准备...

    MySQL实战之Insert语句的使用心得

    如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就更新该记录,此时,可以使用”INSERT INTO … ON DUPLICATE KEY UPDATE …”语句: 情景示例:这张表存了用户历史充值金额,如果第一次充值就新增一...

    MySQL中实现插入或更新操作(类似Oracle的merge语句)

    如果需要在MySQL中实现记录不存在则insert,不存在则update操作。可以使用以下语句: 更新一个字段: INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,...

    完美解决Thinkphp3.2中插入相同数据的问题

    为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现重复,我希望的是uid,year,mounth,day 这三个字段...

    MySQL数据库应用-实验训练3 数据增删改操作

    实验内容:【实验3-1】插入数据(1)使用单记录插入Insert语句分别完成汽车配件表Autoparts、商品类别表category、用户表Client 、用户类别表Clientkind 、购物车表shoppingcart、订单表Order、订单明细表order_has_...

    实验训练3数据增删改操作.docx

    基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete、TRUNCATE TABLE、Update语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。

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

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

    mysql常用命令

    第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中...

Global site tag (gtag.js) - Google Analytics