所以,我现在看到的第一件事就是从SQL服务器商店迁移到MySQL商店是用户定义的变量有点不稳定。我发现在sql-server中声明所有变量有点烦人,但用户定义的变量看起来真的很快而且松散。
例如,如果我在sql-server中使用未声明的变量,我会收到错误。如果我在MySQL中使用未声明的变量,我会在表中插入一堆空值。有没有办法让变量的行为更像他们在sql-server中的行为?
答案 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