执行SHOW ERRORS时,输出中有3列(Level,Code,Message).有没有办法选择一个特定的列(比方说,消息)而不是所有三个.
编辑:
在错误的选择查询SELECT之后查询SHOW ERRORS的结果是这样的:
+-------+------+-------------------------------------------+
| Level | Code | Message |
+-------+------+-------------------------------------------+
| Error | 1054 | Unknown column 'anything' in 'field list' |
+-------+------+-------------------------------------------+
最佳答案
我正在寻找MysqL等同于T-sql @@ ERROR的MysqL并遇到了你的问题.
我已使用GET DIAGNOSTICS获取对错误信息的访问权限,然后将这些信息用作插入错误日志的输入.
例如创建结构:
CREATE TABLE table_that_exists
(
column_that_exists INT(11) NOT NULL,PRIMARY KEY (column_that_exists)
);
CREATE TABLE tbl_error_log
(
id INT(11) NOT NULL AUTO_INCREMENT,err_no INT(4),err_msg VARCHAR(50),source_proc VARCHAR(50),PRIMARY KEY (id)
);
SELECT anything FROM table_that_exists;
SHOW ERRORS;
如何访问数据以在其他过程/错误管理中使用的示例:
GET DIAGNOSTICS CONDITION 1
@P1 = MysqL_ERRNO,@P2 = MESSAGE_TEXT;
SELECT @P1,@P2;
INSERT INTO tbl_error_log (err_no,err_msg,source_proc)
VALUES (@P1,@P2,'sp_faulty_procedure');
SELECT * FROM tbl_error_log;