MySQL 9.0 發行說明
SIGNAL
、RESIGNAL
和 GET DIAGNOSTICS
不允許作為預備陳述式。例如,以下陳述式是無效的:
PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';
類別 '04'
中的 SQLSTATE
值不會被特殊處理。它們與其他例外情況的處理方式相同。
在標準 SQL 中,第一個條件與前一個 SQL 陳述式返回的 SQLSTATE
值相關。在 MySQL 中,這無法保證,因此要取得主要錯誤,您不能這樣做:
GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
請改為這樣做:
GET DIAGNOSTICS @cno = NUMBER;
GET DIAGNOSTICS CONDITION @cno @errno = MYSQL_ERRNO;