
1、首先判断数据是否存在;
2、如果不存在,则插入;
3、如果存在,则更新。
在 SQL Server 中可以这样写:
复制代码代码如下:
if not exists (select 1 from table where id = 1) insert into table(id, update_time) values(1, getdate()) else update table set update_time = getdate() where id = 1
在MySQL 中也可以先select,判断是否存在,存在则 update 否则 insert
但在MySQL 中有更简单的方法,使用 replace into关键字
复制代码代码如下:
replace into table(id, update_time) values(1, now())
或
复制代码代码如下:
replace into table(id, update_time) select 1, now()
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中。
上面提示错误的mysql用户跟你所提供的配置文件的用户名都不一样,检查一下你是否还有别的配置文件,tp5针对不同模块可以有不同的数据库配置,你把他们全都找出来复查一遍试试,希望对你有帮助TP的查询语法是支持跨数据库的,如果原生的话,可能就不能跨数据库支持了,另外一个就是在安全过滤这块需要自己把关了,优势是性能上省去了SQL组装的开销。
TP:ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
原生sql:数据库能直接执行的sql语句,比如能在oracle,mssql,mysql,db2等数据库中直接执行
非原生sql:一般指根据指定的程序规则,自动生成的sql,比如最经典的,linq to sql
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)