mysql – 从SHOW ERRORS查询中选择特定列

执行SHOW ERRORS时,输出中有3列(Level,Code,Message).有没有办法选择一个特定的列(比方说,消息)而不是所有三个.

主要目的是在变量中获取错误消息(第3列)以进行进一步处理.

编辑:

在错误的选择查询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)
);

运行查询以产生错误&显示SHOW_ERRORS的输出:

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;

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章