sql语句-------重复时插入更新】的更多相关文章

ON DUPLICATE KEY UPDATE重复时插入更新 insert into user(id,username) value('231',"二人") on duplicate key update username="哈哈哈哈"; insert into表名(自增id,字段) value('id',"值") on duplicate key update 字段="修改的值";…
在日常开发中,使用到的数据表经常都会有索引,这些索引可能是开发人员/DBA建表时创建的,也可能是在使用过程中新增的.合理的使用索引,可以加快数据库查询速度.然而,在实际开发工作中,会出现有些sql语句执行时不会使用索引.而使用了全表扫描的情况,造成执行速度慢的问题.下面我列举两种比较典型的场景: 场景一:mysql时间字段上使用like 表结构:CREATE TABLE `orders` (`orders_id` int(11) NOT NULL,`order_status` tinyint(4…
oracle初学者一般会遇到这个问题.   用navicat可视化创建了表,可是就是不能查到!   后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系…
在sql语句执行时是先执行触发器再检查约束条件的…
参考来自:https://stackoverflow.com/questions/1109061/insert-on-duplicate-update-in-postgresql/1109198#1109198 功能需求:接口定义中包含字段update,当它为true时,批量插入中有记录造成唯一键重复时,不报异常,而是执行更新. 1.接口定义 { "resources": [ { "name":"*", "display_name&qu…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t…
打印sql语句: $model->find()->createCommand()->getRawSql(); 批量插入 Yii::$app->db->createCommand()->batchInsert(UserModel::tableName(), ['user_id','username'], [ ['1','test1'], ['2','test2'], ['3','test3'], ])->execute();…
笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Load_Count,T.Read_Count) desc 2.取两列之和 select t.*,(nvl(T.Load_Count,0)+nvl(T.Read_Count,0 )) as c FROM t_doc T order by c desc 3.取两列字符串连接 select T.Load_Co…
1.传参时有可能出现SQL语句注入 StringBuffer sb = new StringBuffer(); if(StringUtils.isNotBlank(areaCode)) { sb.append("and t.area_code = '").append(areaCode).append("' "); } SQLQuery query = getSession().createSQLQuery(sb.toString()); 2.传参时避免SQL语句注…
+ View code private static void insertObject(List<?> objectList) throws IllegalAccessException { /** * 比如: * SQL 语句:insert into person(name, age, info) values ('...', '...', '...'); * 其中 values 改为占位符: * SQL 语句:insert into person(name, age, info) val…