精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容
使用MySql进行数据库开发时,经常遇到已经有数据则只进行更新,没有数据则执行添加新行的功能,有些场合用insert加dual可以实现有的时候不添加,但是更新实现不了,MySql为了解决这个问题,添加了Replace语句,完美实现了这个功能,如下图:
看图形最下面的的提示语句,replace into ener() values()这样的。注意里面的红字:只加行,也是返回2行更新,更新也是返回2行更新。
图中部右侧是唯一索引,复合索引,经验证,复合索引也可以支持replace添加更新语句。
说完了Replace添加更新语句,说下workbench软件帮助功能对开发的支持,workbench因为是oracle公司自家公司出的mysql客户端软件,在workbench里点击帮助可以直接跳转到mysql网页上,能看到官方的帮助,虽然是英文的,但是内容官方,比一些中文乱网页更有价值,比如replace语句的官方帮助是:https://dev.mysql.com/doc/refman/8.0/en/replace.html,找到这个链接的方法是在workbench里点击F1键,在搜索框里输入replace搜索就可以找到,mysql官方帮助里有不少经典例子,对于初学者来说非常友好。
虽然Replace说是复合语句,但是实际上和insert用法一样,REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00');省去了dual的尾巴,好用。