MySQL 8.4 發行說明
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;