mysql - 获取消息 查看要应用于数据库的 SQL 脚本

标签 mysql mysql-workbench

我在 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/

相关文章:

php - 从 MYSQL 转换为 MYSQLI

mysql - mysql 查询中仅按数字搜索

MySQL 工作台 "errno 150 foreign key"

mysql - 在两台计算机之间移动连接和实例

mysql-workbench - 如何修复 MySQL Workbench 8 在 Ubuntu 18.10 上崩溃

php - 如何处理特定的 json 错误

mysql - MySQL 的 Nginx 反向代理

php - 如何在php中使用不同的表字段分别插入pdf和video

mysql - MySQL Workbench-如何在不同名称的同一服务器上克隆数据库?

mysql - 工作台出现 LEFT JOIN 错误