MySQL插入、更新问题
客户ID 客户名称 客户姓名 联系方式 信息ID 信息来源
信息来源可能有好多种,
现在的问题是,我要向这表中插入数据(也就是从其他的表中复制数据过来),插入的时候需要先通过字段“信息ID、信息来源” 这两个字段判断一下是否存在 该来源的该信息,如果存在则更新其中的内容,如果不存在则直接插入新的数据。
信息ID 不是唯一值 可以有重复的值(但是通过 信息ID+信息来源 组合查询可以得到唯一值,也就是说通过这两个字段组合查询只能查出一条相关数据), 信息来源有两种可能 (1代表一种来源 2代表另一种来源)
请问有没有什么效率高的方法!?
相关推荐
MySQL中实现插入或更新操作(类似Oracle的merge语句)
主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
MYSQL插入中文解决方法
已解决讨厌的乱码问题,这个问题让我头疼死了,终于解决了
mysql自增id超大问题的排查与解决
引言 小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入就会失败,balabala……” 我记得没有这么多,最多1k多万,count了下,果然是1100万。原来运维是通过auto_increment那个值看的,就是说,表中有大量的删除插入操作,但是我大部分情况都是更新的,怎么会这样? 下面话不多说了,来一起看看详细的介绍吧 问题排查 这张表是一个简单的接口服务在使用,每天大数据会统计一大批信息,然后推送给小A,小A将信息更新到数据库中,如果是新数据就
Mysql中 unique列插入重复值该怎么解决呢
当unique列在一个UNIQUE键上插入包含重复值的记录时,我们可以控制MySQL如何处理这种情况:使用IGNORE关键字或者ON DUPLICATE KEY UPDATE子句跳过INSERT、中断操作或者更新旧记录为新值。 mysql> create table menus(id tinyint(4) not null auto_increment, -> label varchar(10) null,url varchar(20) null,unique key(id)); Query OK, 0 rows affected (0.13 sec) mysql> insert int
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, 1 row affected (0.05 sec) mysql> create table t_bluerosehero(id int primary key,col int); Query OK, 0 rows affected (0.


