建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > MYSQL学习 > mysql实现数据不存在就插入否则就更新数据怎么写

mysql实现数据不存在就插入否则就更新数据怎么写

时间:2015-04-01 16:19:23  来源:免费模板网 作者:风雪 阅读次数 tagsmysql运用

在数据库里面有时候会遇到这样的情况,别人数据重复的时候不希望出现重复的数据,及数据存在就插入否则更新数据,那怎么实现呢
下面来看一个mysql 数据不存在就插入,否则就更新数据的例子,希望例子能帮助到各位同学.有2种方法,代码如下:
  1. insert ignore into {$this->getTable(‘core_config_data’)} (scope,scope_id,path,value) values (‘default’,0,’dev/debug/template_hints’,0); 

注:如果使用的是insert into 发现重复的会报错,而insert ignore into 发现将要插入的数据行中包含唯一索引的字段值已存在,会丢弃掉这行数据,不做任何处理,代码如下:

  1. replace into {$this->getTable(‘core_config_data’)}(scope,scope_id,path,value) values(‘default’,0,’dev/debug/template_hints’,0); 

注:REPLACE发现重复的先删除再插入,如果记录有多个字段,在插入的时候如果有的字段没有赋值,那么新插入的记录这些字段为空,所以为了更好的解决这个问题,我们可以进入一些操作,代码如下:

  1. /如果不存在,则插入新数据 
  2. $sql = “INSERT INTO {$ecs->table(‘cat_lang’)} (cat_id,lang_id,cat_name,keywords,cat_desc) 
  3. VALUES({$cat_id},{$k},’{$val['cat_name']}’,'{$val['keywords']}’,'{$val['cat_desc']}’) 
  4. ON DUPLICATE KEY UPDATE cat_name=’{$val['cat_name']}’,cat_desc=’{$val['cat_desc']}’,keywords=’{$val['cat_desc']}’”; 
  5.  

这里要注意的是,必须表主键唯一,这里,这里我采用的是 分类id和语言id双主键机制,具体sql,代码如下:

  1. INSERT INTO TABLE (a,b,c) 
  2. VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 
  3. UPDATE TABLE SET c=c+1 WHERE a=1; 

key为唯一键或者主键.

本文地址:https://www.freemoban.com/mysql/2015/0401/1145.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!