set IMPLICIT_TRANSACTIONS ON--关闭自动提交on 防止误操作,除非显式提交commit后,才会真正提交到数据库中,并且可以随时回滚操作.如下: set IMPLICIT_TRANSACTIONS ON--关闭自动提交onbegin transaction update 表 set 字段='测试时'where 条件=281 commit--提交rollback transaction--回滚…
1. 简介说明             我们知道oracle中sqlplus里面执行dml语句:是需要提交commit:若错了:也可以回滚rollback: 然而在postgresql里面默认是自动提交:执行完就马上提交了,不能回滚,这样容易导致误操作的发生,有没有什么办法避免这个风险呢?当然有,在psql中默认是打开自动提交的,我们可以关闭自动提交.   2. 操作验证   [postgres@oracle2 ~]$ psql -U lottu -d xzfb psql (9.5.0) Typ…
背景 用过oracle或mysql的人都知道,做一个dml语句,如果发现做错了,还可以rollback,但在Kingbase ksql 中,如果执行一个dml,没有先运行begin; 的话,一执行完就马上提交了,不能回滚,(因为默认自动提交是开启的)这样容易导致误操作的发生,有没有什么办法避免这个风险呢?答案是关闭自动提交. 在KingabseESV8R6中 autocommit功能默认是开启的. test=# \echo :AUTOCOMMIT; on; 在被设置为on(默认)时,每一个 SQ…
首先声明:该文虽以Ubuntu 13.04为例,同样适用于Fedora 17(已测试),但在较低版本的Ubuntu下可能有所差异,具体看后面的注意事项. 技巧目录: 解决Ubuntu下每隔几分钟自动锁屏,需要重新输入密码的问题 无须输入用户名密码让Ubuntu自动登录到桌面 Ubuntu下如何使用sudo不用输入密码 1. 解决Ubuntu下每隔几分钟自动锁屏,需要重新输入密码的问题 有时候几分钟不用Ubuntu,系统就自动锁屏了,这是一种安全措施,防止别人趁你不在时使用你的系统.但对于大部分人…
--实际只会更新一条.可有效防止误操作.特别是操作线上正式数据时. UPDATE TOP(1) Table2 SET Culumn1='value'WHERE id IN(269102,269104) <OrderKey>000000102153003,</OrderKey><OrderKey>000000102153337,</OrderKey><OrderKey>000000102153293,</OrderKey><Ord…
今天用JDBC与数据库进行交互的时候,报错如下: ********************************************************************************************* com.ibm.db2.jcc.b.SqlException: [jcc][t4][10251][10308][3.53.70] 正在连接上执行事务时,请求了 java.sql.Connection.close(). 事务仍然保持活动状态,不能关闭连接. ERR…
1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * from user info就要报错,需要写成:select * from [user] 和 select * from [user info],不过千万不要因为有[]的帮助,就随意起名了,那是自找麻烦,不过我确实看到有人把用户表起名为user的. 2.NULLIF函数 NULLIF(Express…
由于项目要求,要手动拼接SQL,(不知道领导们怎么想的--),然后就再次回到原始时代,append(SQL). 但后面查询牵扯到动态多条件,如果是mybatis的话就直接 可以用<if>标签拼接动态SQL,但在java中拼接,需要考虑where的连接情况/And的连接情况--,真是好头大. 后来在朋友告诉我一个方法,轻松解决了这个问题,就是在 直接加上 where 1=1 即可. 全文大概如下: select * from table where 1=1 然后再有字段加入,便直接使用 if判断…
此文章为转载 使用CASE来重新定义数值类型 SELECT id,title, (CASE date WHEN '0000-00-00' THEN '' ELSE date END) AS date FROM your_table SELECT id,title, (CASE status WHEN 0 THEN 'open' WHEN 1 THEN 'close' ELSE 'standby' END) AS status FROM your_table 查找重复的email记录字段 SELE…
工作中经常会遇到,要在sql中查询报表,查询结果要求按照日期来罗列, 或按照天, 或按照月,年. 这个时候我们经常会苦恼,datetime是精确到毫秒的,如果单纯的group by datetime就会导致结果不正确. 这是我们可以利用convert函数: SELECT convert(varchar(10),CreateDate,120) ,var1 ,var2 FROM Table GROUP BY convert(varchar(10),CreateDate,120) ASC 第一个参数是…