我正在使用MySQL,我想使用一个"with“语句来读取查询中另一个存储过程的输出,但是当我试图在"with”语句中使用"CALL sp_2()“时,它会抛出一个异常。
这个很好用:
CALL sp_2(user_input);
但这个不是:
WITH A AS (CALL sp_2(user_input))
SELECT * FROM A;
我是不是做错了什么,或者MySQL真的不允许"WITH“语句使用其他存储过程?还有别的解决办法吗?
我正在开发一个带有Mysql数据库(5.5版)的c#应用程序。我正面临着一个问题,我需要捕获Mysql中发生的异常。它是在Mysql中捕获的还是在dotNet中捕获并不重要。问题是,当发生异常/错误时,我希望回滚所有以前的工作;无论是MySqlException还是自定义异常/错误。是的,我尝试使用TransactionScope和MySqlTransaction,但它没有回滚我的工作。如果任何人有任何想法或建议,请指导我。谢谢。
编辑:代码
MySqlConnection con = new MySqlConnection(cnstring);
if (con
在MySQL存储过程中,我使用以下命令处理SQL异常:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SELECT "SQL exception occured." AS "SQL Exception";
SHOW ERRORS;
SHOW WARNINGS;
ROLLBACK;
END;
我知道会抛出一个异常,因为正在显示SQL exception occured消息并且事务被回滚。但是,SHOW ERRORS或SHOW WARNINGS
我创建了一个Mysql存储过程来从表中删除一个客户端,这个过程使用将要删除的客户端的id作为参数,如果在表中找不到客户端的id,我想得到一条错误消息。我的过程如下所示:
CREATE PROCEDURE `delete_client`(in cod varchar(8))
BEGIN
-- the code
END
我熟悉oracle处理此错误的方法(如果SQL%NOTFOUND,则引发..)但是我不知道在mysql中怎么做。另外,我是从一个php文件中调用这个过程的,那么我如何从异常中回显错误消息。谢谢!
我有一个在MySQL数据库中调用存储过程的方法:
public DataTable ExecuteSP_ReturnDataTable(DynamicGridAction pAction)
{
DataTable ret = new DataTable();
MySqlCommand wCmd = new MySqlCommand();
try
{
wCmd = new MySqlCommand(pAction.SPName);