我在 MySQL Workbench 中创建存储过程时收到以下消息:
“查看要应用于数据库的 SQL 脚本”
我在数据库中有几个表,但我正在编写的存储过程将是 仅用于一张 table 。由于存储过程的SQL脚本将应用于整个数据库,我想知道它是否也会影响其他表?我不希望其他表因为这个脚本而受到干扰。
请提供您的意见,因为我是第一次这样做。
问题#2:
在以下语句之前创建例程时,为什么我会看到“DELIMITER $$”作为第一个语句?
CREATE PROCEDURE `mydatabase`.`myfirstroutine` ()
BEGIN
谢谢
最佳答案
1) MySQL Workbench 提供了在将生成的 SQL 脚本发送到服务器之前对其进行检查的选项。这样您就可以检查是否存在可能的问题。
2) DELIMITER
命令通常需要将结束单个语句的当前分隔符(默认为分号)切换为其他内容,因为存储过程代码本身需要分号来分隔单独的命令。但是 sp 代码必须作为一个整体发送到服务器。
更多细节:DELIMITER
关键字只是一个客户端关键字,这意味着服务器不知道它并且不需要它。这是客户端在将 SQL 命令发送到服务器之前正确分离它们的一项发明(您不能将命令列表发送到服务器,只能发送单个语句)。
但是在 MySQL Workbench 中,尤其是在您编辑的对象编辑器中,例如sp文本,添加DELIMITER命令本质上是无意义的,因为只有这个sp代码,因此没有什么可以分离的。这可能会在未来的版本中消失,但现在忽略它。
关于mysql - 获取消息 查看要应用于数据库的 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20987611/