|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
解决方案提供商开始推动DBaaS浪潮之前,他们应该深入了解究竟什么是DBaaS。 MySql中delimiter事实能够起到些甚么感化呢?大概很多人都有如许的困惑,下文就为您先容MySql中delimiter的感化,供您参考。
MYSQL导出一个SQL后:- DELIMITER$$DROPTRIGGERIFEXISTS`updateegopriceondelete`$$CREATETRIGGER`updateegopriceondelete`AFTERDELETEON`customerinfo`FOREACHROWBEGINDELETEFROMegopriceWHEREcustomerId=OLD.customerId;END$$DELIMITER;
复制代码 个中DELIMITER定好停止符为"$$",然后最初又界说为";",MYSQL的默许停止符为";".
具体注释:
实在就是告知mysql注释器,该段命令是不是已停止了,mysql是不是能够实行了。
默许情形下,delimiter是分号;。在命令行客户端中,假如有一行命令以分号停止,
那末回车后,mysql将会实行该命令。如输出上面的语句
mysql>select*fromtest_table;
然后回车,那末MySQL将当即实行该语句。
但偶然候,不但愿MySQL这么做。在为大概输出较多的语句,且语句中包括有分号。
如试图在命令行客户端中输出以下语句- mysql>CREATEFUNCTION`SHORTEN`(SVARCHAR(255),NINT)mysql>RETURNSvarchar(255)mysql>BEGINmysql>IFISNULL(S)THENmysql>RETURN;mysql>ELSEIFN<15THENmysql>RETURNLEFT(S,N);mysql>ELSEmysql>IFCHAR_LENGTH(S)<=NTHENmysql>RETURNS;mysql>ELSEmysql>RETURNCONCAT(LEFT(S,N-10),...,RIGHT(S,5));mysql>ENDIF;mysql>ENDIF;mysql>END;
复制代码 默许情形下,不成能比及用户把这些语句全体输出完以后,再实行整段语句。
由于mysql一碰到分号,它就要主动实行。
即,在语句RETURN;时,mysql注释器就要实行了。
这类情形下,就必要事前把delimiter换成别的标记,如//或$$。- mysql>delimiter//mysql>CREATEFUNCTION`SHORTEN`(SVARCHAR(255),NINT)mysql>RETURNSvarchar(255)mysql>BEGINmysql>IFISNULL(S)THENmysql>RETURN;mysql>ELSEIFN<15THENmysql>RETURNLEFT(S,N);mysql>ELSEmysql>IFCHAR_LENGTH(S)<=NTHENmysql>RETURNS;mysql>ELSEmysql>RETURNCONCAT(LEFT(S,N-10),...,RIGHT(S,5));mysql>ENDIF;mysql>ENDIF;mysql>END;//
复制代码 如许只要当//呈现以后,mysql注释器才会实行这段语句
以上就是MySql中delimiter起到的感化先容。
<Pstyle="TEXT-INDENT:2em">
与数据库相关的流程的逐渐标准化,使得解决方案提供商能以更便捷的方式提供服务、部署应用程序、规划容量和管理资源。DBaaS模式还有助于减少数据和数据库的冗余度并提升整体服务质量。 |
|