当前位置: 首页 > news >正文

绥化网站建设公司seo网站推广工作内容

绥化网站建设公司,seo网站推广工作内容,wordpress本站只对会员开放,有阿里空间怎么做网站【REDME】 有些业务场景如下#xff1a; 对于数据已经存在的#xff0c;则更新#xff1b;否则新增#xff1b; 怎么判定数据已经存在#xff0c;通过主键或唯一索引来判断#xff1b; 业务场景#xff1a;业务库的全局参数表的参数值的新增或更新就是 有则更细无则…【REDME】 有些业务场景如下 对于数据已经存在的则更新否则新增 怎么判定数据已经存在通过主键或唯一索引来判断 业务场景业务库的全局参数表的参数值的新增或更新就是 有则更细无则插入的常见业务场景 【1】2种实现方式 通常情况下我们是先select判断数据是否存在若不存在则新增否则更新 要完成这个小小功能我们需要写3条sql非常麻烦 采用2种简单方式只需要写1条sql 方式1 duplicate key insert into ...... on duplicate key update ...方式2replace into【1.1】duplicate key update 0. duplicate 官方文档翻译参见   https://blog.csdn.net/PacosonSWJTU/article/details/120058725 1.duplicate顾名思义有重复键则更新否则插入 2.语法如下 如果指定 ON DUPLICATE KEY UPDATE 子句并且要插入的行会导致 UNIQUE 索引或 PRIMARY KEY 中出现重复值则会发生旧行的 UPDATE。 例如如果列 a 声明为 UNIQUE 并包含值 1则以下两个语句具有类似的效果 INSERT INTO t1 (a,b,c) VALUES (1,2,3)ON DUPLICATE KEY UPDATE cc1;UPDATE t1 SET cc1 WHERE a1; 3.测试案例 -- 表结构 CREATE TABLE my_cust_warn_tbl (rcrd_id varchar(64) NOT NULL COMMENT 记录编号,cust_num varchar(50) NOT NULL COMMENT 客户号,cust_name varchar(50) DEFAULT COMMENT 客户姓名,warn_times int(11) DEFAULT NULL COMMENT 客户预警次数,create_time timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 创建时间,last_modify_time timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT 最后修改时间,PRIMARY KEY (rcrd_id),UNIQUE KEY uni_cust_num (cust_num) ) ENGINEInnoDB DEFAULT CHARSETutf8 COMMENT客户预警表 注意 使用duplicate语法的数据库表一定要设置唯一索引以便于判断数据是否存在 统计客户的预警次数很显然就是有着更新没有则新增 INSERT INTO mybatis.my_cust_warn_tbl (rcrd_id, cust_num, cust_name, warn_times) VALUES(hand_11, hand_11_custnum, hand_11_custname, 0) on duplicate key update warn_timeswarn_times1, create_time current_timestamp ; 第一次执行上述sql由于 hand_11_cust 不存在则返回条数是1 第二次执行SQL如下 注意第一次与第二次的sql不一样主键不同但客户号相同客户号是唯一索引 INSERT INTO mybatis.my_cust_warn_tbl (rcrd_id, cust_num, cust_name, warn_times) VALUES(hand_11_2, hand_11_custnum, hand_11_custname, 0) on duplicate key update warn_timeswarn_times1, create_time current_timestamp ;由于 hand_11_cust 已经存在更新条数返回2 【1.2】replace into 1.replace顾名思义替换有则先删除后插入没有则直接插入 步骤为 step1delete 存在的记录通过主键或唯一索引来判断step2重新插入新值 为了演示效果我们新建了一个主键自增的数据库表 drop table if exists my_cust_warn_autopk_tbl ; CREATE TABLE my_cust_warn_autopk_tbl (rcrd_id int primary key not null auto_increment COMMENT 记录编号,cust_num varchar(50) NOT NULL COMMENT 客户号,cust_name varchar(50) DEFAULT COMMENT 客户姓名,warn_times int(11) DEFAULT NULL COMMENT 客户预警次数,create_time timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 创建时间,last_modify_time timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT 最后修改时间,UNIQUE KEY uni_cust_num (cust_num) ) ENGINEInnoDB DEFAULT CHARSETutf8 COMMENT客户预警表自增 ;2. 测试案例 REPLACE INTO mybatis.my_cust_warn_autopk_tbl (cust_num, cust_name, warn_times) VALUES(hand_12_custnum, hand_12_custname, 0) ; 因为之前没有存在的数据故更新行数为1 刚刚插入的记录的主键值为1 如下 接着 我们把客户姓名字段设置为null看下 发现更新行数为2 REPLACE INTO mybatis.my_cust_warn_autopk_tbl (cust_num, cust_name, warn_times) VALUES(hand_12_custnum, null, 0) ; 我们看下数据长什么样子仅有一个 主键值为2的记录存在 很显然因为存在客户号为 hand_12_custnum的记录于是先删除了 主键为1的记录然后再插入主键为2的记录如下 当然了通过两次sql的 create_time 也可以判断出 第2次replace是 删除旧记录然后重新新增一条数据而不是在旧记录上修改 因为 两次的create_time 不一样 【2】 两者执行时间简单对比 show variables like %pro%; set profiling1; show profiles ;
http://www.huolong8.cn/news/191526/

相关文章:

  • 零基础学做网站难吗wordpress显示阅读量
  • 做58同城网站需要多少钱seo哪里有培训
  • 湛江门户网站网站怎么做发送邮件的超链接
  • 公司网站建设找谁做网站原创文章规范
  • 做策划的网站推广特色企业网站
  • 广开街网站建设公司网站维护服务费
  • 做网站送优化自己的网站统计输入词
  • 如何网站托管网站建设公司企业模板下载
  • html中文美食网站模板高新区网站开发
  • 中英文 网站浙江省建设业技术创新协会网站
  • 重庆网站建设哪家公司那家好一级域名二级域名哪个好
  • 中英文网站源码 免费网站后台登录怎么做的
  • 惠州悦商做网站网站为什么要seo?
  • 定制网站建设功能报价表模板群晖wordpress主机
  • 网站建设管理职责好的网站首页的特点
  • 5118网站如何使用免费版中国建筑报道网
  • 三网合一的网站企业官方网站应该怎么样建设
  • 做网站需要交接什么网站建设分金手指排名十八
  • 新沂网站设计广州网站设计开发公司
  • 网站备案信息登记表免费的设计软件
  • 网站内外链怎么做效果好厦门市建设局官方网站
  • 网站版面做的很好的公司太原最新消息
  • 大地保险网站丰都网站建设哪家好
  • 上海松一网站建设设计中国北京2021
  • 济南软月建站做网站的做app的
  • 做网站资料创意设计活动加计扣除
  • 制作网站支付方式学设计的学校
  • 欧美做受网站视频播放厦门百度竞价开户
  • 深圳企业网站哪家强做PPT参考图片网站 知乎
  • 网站建设需要什么技能零基础家装设计师自学