获取消息查看要在数据库上应用的SQL脚本

时间:2014-01-08 05:21:01

标签: mysql mysql-workbench

我在MySQL Workbench中创建存储过程时收到以下消息:

“查看要在数据库上应用的SQL脚本”

我在数据库中有几个表,但我正在编写的存储过程 仅用于一张桌子。因为,存储过程的SQL脚本将应用于整个数据库,我想知道它是否会影响其他表?我不希望其他表因此脚本而受到干扰。

请在第一时间提供您的输入。

问题#2:

为什么在下面的语句之前创建例程时,我会看到“DELIMITER $$”作为第一个语句?

CREATE PROCEDURE `mydatabase`.`myfirstroutine` ()

BEGIN

由于

1 个答案:

答案 0 :(得分:1)

1)MySQL Workbench提供了在生成的SQL脚本发送到服务器之前查看生成的SQL脚本的选项。这样你就可以检查它是否存在问题。

2)通常需要DELIMITER命令来切换结束单个语句(默认为分号)的当前分隔符,因为存储过程代码本身需要分号来分隔各个命令。但是,sp代码必须作为整体发送到服务器。

更多细节:DELIMITER keywword只是一个客户关键字,这意味着服务器不知道它并且不需要它。这是客户在将sql命令发送到服务器之前正确分离sql命令的一项发明(不能将命令列表发送到服务器,只能发送单个语句)。

但是在MySQL Workbench中,特别是在您编辑的对象编辑器中,例如sp文本,添加DELIMITER命令基本上是无稽之谈,因为只有这个sp代码,因此无需分离。这可能会在将来的版本中消失,但现在只是忽略它。