MySQL用户定义的变量与MSSQL服务器用户定义的变量相比较

时间:2011-03-15 14:35:54

标签: mysql sql-server

所以,我现在看到的第一件事就是从SQL服务器商店迁移到MySQL商店是用户定义的变量有点不稳定。我发现在sql-server中声明所有变量有点烦人,但用户定义的变量看起来真的很快而且松散。

例如,如果我在sql-server中使用未声明的变量,我会收到错误。如果我在MySQL中使用未声明的变量,我会在表中插入一堆空值。有没有办法让变量的行为更像他们在sql-server中的行为?

1 个答案:

答案 0 :(得分:1)

我没有意识到“开箱即用”的方式。我假设你正在编写脚本或程序。我建议你在适当的时候验证所有变量。然后,当变量为null时,您可以引发错误(使用SIGNAL)。遗憾的是,你必须编写它,但它应该做你想要的,你应该得到一个错误回到你的应用程序然后你可以解析。

http://dev.mysql.com/doc/refman/5.5/en/signal.html

CREATE PROCEDURE foo (VAL INT)
BEGIN
    IF val IS NULL THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'An error occurred';
    END IF;
END
相关问题