2011-03-15 26 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