达梦数据库更新语句包含单引号双引号引起执行失败解决方法全网唯一
如果一个更新的UPDATE更新语句的内容包含单引号’,会引起执行错误!
错误的类型不止这一种,但是都是因为内容里面包含转义字符单引号引起
解决方法一:外部单引号 内部数据单引号替换为双引号
把SQL里面内容人工调整成一行
update test1 set nasen='select * FROM a WHERE NAME="NASEN"'
解决方法二:外部同意用单引号,内部采用REPLACE函数实现转义
把SQL里面内容人工调整成一行
SELECT REPLACE('select * from nasen where name="{var}"','"','''')
update test1 set createSql=REPLACE('select * from nasen where name="{aasda}"','"','''') where id=35;
这种方法就实现了遇到更新语句包含单引号导致执行失败的问题了
三、达梦8怎么实现MYSQL的ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’
我们实际工作中会用到业务用到当数据被修改的时候同时记录当前修改的时间,在MYSQL的时候用到
gxsj` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
达梦在达梦8怎么实现呢这里用到触发器实现
1、我们建一个测试的表
CREATE TABLE "nasen_test"
(
"ID" BIGINT NOT NULL,
"SCSJ" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
"STATUS" INT NOT NULL,
"GXSJ" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP() NOT NULL,
CONSTRAINT "CONS13422015711" NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
2、添加触发器到"GXSJ"这个字段上
CREATE OR REPLACE TRIGGER nasen_test_trigger
BEFORE UPDATE ON nasen_test
FOR EACH ROW
BEGIN
:new.GXSJ=CURRENT_TIMESTAMP();
END;
3、插入测试数据,并执行一个更新语句更新某一个字段测试然后看GXSJ字段是否取当前执行语句的时间即可
update nasen_test set STATUS =2 WHERE ID=1;
四、查看当前被锁堵塞的信息
SELECT SYSDATE STATTIME,DATEDIFF(SS,S1.LAST_SEND_TIME,SYSDATE) SS,
'被阻塞的信息' WT,S1.SESS_ID WT_SESS_ID,S1.SQL_TEXT WT_SQL_TEXT,S1.STATE WT_STATE,S1.TRX_ID WT_TRX_ID,
S1.USER_NAME WT_USER_NAME,S1.CLNT_IP WT_CLNT_IP,S1.APPNAME WT_APPNAME,S1.LAST_SEND_TIME WT_LAST_SEND_TIME,
'引起阻塞的信息' FM,S2.SESS_ID FM_SESS_ID,S2.SQL_TEXT FM_SQL_TEXT,S2.STATE FM_STATE,S2.TRX_ID FM_TRX_ID,
S2.USER_NAME FM_USER_NAME,S2.CLNT_IP FM_CLNT_IP,S2.APPNAME FM_APPNAME,S2.LAST_SEND_TIME FM_LAST_SEND_TIME
FROM V$SESSIONS S1,V$SESSIONS S2,V$TRXWAIT W
WHERE S1.TRX_ID=W.ID
AND S2.TRX_ID=W.WAIT_FOR_ID;
五、查询某个表的所有会话并杀掉解锁
select DISTINCT c.SESS_ID from v$lock a
left join sysobjects b on b.ID=a.TABLE_ID
left join v$sessions c on a.TRX_ID=c.TRX_ID
where name = '表名称';
sp_close_session(35451965760); #里面是数字就是sessionid
笔者简介
国内某一线知名软件公司企业认证在职员工:任JAVA高级研发工程师,大数据领域专家,数据库领域专家兼任高级DBA!10年软件开发经验!现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目!并维护真实企业级生产数据库300余个!紧急处理数据库生产事故上百起,挽回数据丢失所造成的灾难损失不计其数!并为某国家级大数据系统的技术方案(国家知识产权局颁布)专利权的第一专利发明人!