【问题标题】:How can I raise an exception from within a Mysql trigger?如何从 Mysql 触发器中引发异常?
【发布时间】:2023-04-03 13:55:01
【问题描述】:

请考虑我的触发器 sn-p:

SELECT 
    COUNT(*)
INTO num_rows FROM  courses
WHERE
    course_id = NEW.course_id
        AND maxsize > students_registered;

    IF num_rows < 1 THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Testing Custom Fail-Over';
    END IF; 

对于 SQLSTATE '45000' ,我如何引发 SQLException 或任何类型的异常,以便我可以在我的 java 逻辑中抛出它并进行相应的处理?

任何建议都将不胜感激,即使这意味着改变我的方法。

【问题讨论】:

  • 我想 Connector/J 会自动将信号转换为 java.sql.SQLException。你为什么不试试看会发生什么?
  • @DarwinvonCorax 当然,那是我在问这个问题之前的第一次尝试,但是由于尝试期望 SQL 异常而导致的 catch 永远不会执行,你的意思是这可能是我这边的错误?

标签: java mysql exception triggers


【解决方案1】:

Connector/J(MySQL JDBC 驱动程序)自动将信号转换为具有 SQLSTATEMESSAGE_TEXT 等指定值的java.sql.SQLException。填写;然后可以照常处理这些异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-08
    • 2021-08-24
    • 2012-11-11
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    相关资源
    最近更新 更多