“错误号”和“SQLSTATE 代码”有什么区别?

Bac*_*b32 7 mysql error-handling

在下面的链接中,我看到Error numbers 和SQLSTATE code。我想知道这两者之间的区别。

https://dev.mysql.com/doc/mysql-errors/en/server-error-reference.html

例如,从上面的链接,

错误号:1005;符号:ER_CANT_CREATE_TABLE;SQL状态:HY000

Bil*_*win 7

您链接到的页面有一个到附近文档页面的链接: https: //dev.mysql.com/doc/refman/en/error-message-elements.html

  • 错误代码:该值为数字。它是 MySQL 特定的,不能移植到其他数据库系统。

  • SQLSTATE 值:该值是一个五个字符的字符串(例如“42S02”)。SQLSTATE 值取自 ANSI SQL 和 ODBC,比数字错误代码更加标准化。

区别在于前者是MySQL发明的,后者符合ANSI SQL。