2012-01-10 17 views
1

在MySQL 5,存儲過程可以返回任何數目的輸出參數的,這樣的:在MySQL 5中,返回錯誤級別和結果集的約定是什麼?

CREATE PROCEDURE `test1`(IN in1 VARCHAR(64), IN in2, OUT out1 VARCHAR(64), OUT out2 INT, OUT out3 INT) 

在MySQL 5中,存儲的過程也可以返回/打印一個結果,這樣的:

CREATE PROCEDURE `test2`() 
BEGIN 
    SELECT * FROM `table`; 
END$$ 

這很好,很靈活。因此,在試圖與外界溝通時,如何使用這種靈活性來通知結果(如果有)和錯誤(如果有)?

例子:

  1. 難道我們把錯誤信息在我們的輸出參數?我們把它們放在結果集中嗎?
  2. 我們是否打印出多個連續的結果集?或者我們只限於一個結果集?
  3. 如果出現錯誤,我們是否將結果集設置爲NULL?
  4. 我們是否使用輸出參數整數來計算錯誤,其中0是無錯誤的?
  5. 我們是否使用輸出參數VARCHAR作爲錯誤,''(空字符串)表示沒有錯誤?

回答

1

我認爲使用Signals在服務器支持的情況下返回錯誤是有意義的(5.5及以上)。

+0

我想我會將你的答案稱爲接受的答案,因爲它肯定會擴展我的理解,並且是MySQL稱之爲「返回」錯誤的方式。「讓我們拭目以待,看看有沒有更好的東西出現。謝謝。 – 2012-01-10 05:21:04

相關問題