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;