【问题标题】:Formatting error message in MySQL errorMySQL错误中的格式化错误消息
【发布时间】:2017-01-28 16:42:48
【问题描述】:

我试图弄清楚如何在 MySQL (5.7) 中使用格式化的错误消息引发错误。

// SOME PROCEDURE
begin
declare something INT;
start transaction;
    call getsomething(something); // sets something to data
    if something is NULL then
        rollback;
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Something %d not found!', MYSQL_ERRNO = 1001;
    end if;
commit;
end

创建错误消息时如何使用“某物”变量?

【问题讨论】:

标签: mysql sql


【解决方案1】:
// SOME PROCEDURE
begin
declare something INT;
declare error_msg VARCHAR(255);
start transaction;
    call getsomething(something); // sets something to data
    if something is NULL then
        rollback;
        set error_msg = CONCAT('Something not found!', something);
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = error_msg, MYSQL_ERRNO = 1001;
    end if;
commit;
end

遵循@Samis 评论并使用 CONCAT 重试 - 上述工作。

【讨论】:

    【解决方案2】:

    CONCAT() 和存储消息的局部变量呢?

    SET MESSAGE_TEXT = CONCAT(something, 'not found!');
    

    working example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-08
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2019-06-28
      • 2016-05-24
      相关资源
      最近更新 更多