2011-03-15 59 views
1

因此,现在我从SQL服务器商店移动到MySQL商店时看到的第一件事情是,用户定义的变量是有点won。。我发现它有点烦人,必须在sql-server中声明所有的变量,但用户定义的变量看起来真的很快而且比较松散。MySQL用户定义变量与MSSQL服务器用户定义变量的比较

例如,如果我在sql-server中使用未声明的变量,则出现错误。如果我在MySQL中使用未声明的变量,我会在表格中插入一堆空值。有什么办法让变量的行为更像他们在sql-server中的方式吗?

回答

1

没有我知道的“盒子”方式。我假设你正在编写脚本或程序。我建议您在适当的地方验证所有变量。然后,当变量为空时,可以引发错误(使用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