当前位置: 首页 > 面试题库 >

是否可以从另一个sql脚本中的存储过程中调用sql脚本?

翟展
2023-03-14
问题内容

我想用。像这样从存储的过程中调用sql脚本…

delimiter ///
create procedure append_procedure()
BEGIN
\. test.sql;    
END; ///
delimiter ;

我收到“无法打开’test.sql;’的消息” 我以这种方式运行时出错。我也尝试过!但随后出现权限被拒绝错误。但是,我无法消除;;
或整个事情坏了。有没有解决的办法?

我究竟做错了什么?


问题答案:

mysql客户端内置了一组命令。它们记录在“
mysql命令 ”
下。这些包括DELIMITER,SOURCE,HELP,CONNECT,USE,QUIT等。

\.(或SOURCE)命令是这些建宏之一。 您不能以编程方式执行这些内置命令,也不能从存储过程中执行。

就像试图使用C从C程序运行内置的UNIX shell一样execl()

在网络浏览器中可能有不同的类比,您可以在其中键入about:由浏览器应用本身处理的特殊请求,例如“ ”;这些不会导致对远程网站的任何HTTP请求。

另外,如果可以从存储过程中获取脚本也无济于事,因为脚本本身可能包含一堆由mysql客户端内置的命令,因此无法由存储过程运行。

另请参阅我对以下相关问题的回答:

  • 在PHP中运行MySQL * .sql文件
  • 从PHP内加载.sql文件
  • PHP:在一个mysql_query语句中进行多个SQL查询


 类似资料:
  • 问题内容: 基本上我想从Postgres中的SQL文件执行一个SQL文件。 mysql的类似问题:是否可以在另一个sql脚本中从存储过程调用sql脚本?] 为什么? 因为我在一个项目中有2个数据文件,并且我希望有一行可以被注释/取消注释,所以可以加载第二个文件。 澄清: 我想从A.SQL调用B.SQL 说明2: 这是针对使用hibernate模式从初始SQL文件(A.SQL)创建数据库的Sprin

  • 我如何在服务器的另一个存储过程中执行SQL存储过程?我将如何传递第二个过程的参数。?

  • 问题内容: 我并不是说要进行“ SET NOCOUNT OFF”。但是我有一个存储过程,可用于将一些数据插入某些表中。此过程创建一个xml响应字符串,下面让我举一个例子: 因此,我整理了一个脚本,该脚本多次使用此SP,并且xml“输出”变得太多了(它已经使我的盒子崩溃了)。 有没有办法抑制或重定向由此存储过程生成的输出?我不认为修改此存储过程是一种选择。 谢谢。 我想我应该澄清一下。上面的SP被我

  • 问题内容: 当我尝试从Rails调用存储过程时,出现以下异常: Rails Wiki中 有一个页面讨论用于解决此问题的MySQL适配器的修补程序,但是它已过时,似乎不再起作用。 配置代码正确地启用了存储过程,但是在存储过程调用之后连接仍然不同步并且新方法不再起作用,仍然存在问题。 关于如何使它工作的任何建议? 这是我正在使用的代码: 无论是否返回任何结果,它都会引发相同的异常。 问题答案: 将程序

  • 问题内容: 我试图用谷歌搜索,但找不到方法 我有一个t-sql脚本,该脚本将新列添加到表中,然后根据该表中其他列的值填充该列,最后删除一些列。这一切都很好。 当我想再次运行脚本时,会出现问题。我有一个if子句,用于检查缺少的列是否存在,但是即使if子句中的代码未运行,SSMS仍会抱怨并显示错误消息。该脚本必须能够再运行一次,并且我不希望显示错误消息! 在代码中(显然是测试代码,不想在此处转储生产代

  • 问题内容: 我有一个脚本,可以用来构造表和存储过程。例如,我有一个类型为的列。需要一个size参数,该大小我也用作存储过程以及这些过程中的参数。 是否有可能具有a的等价形式,因此我可以轻松调整大小而无需在整个脚本中进行更改? 我正在使用MySql工作台。 编辑 我曾尝试和 我有一个脚本-这是(删节的) 我想要实现的是用一个 常量 替换脚本中的值25-类似于创建表和存储过程的脚本顶部的a ,因此我能