MySQL: 신호에 적합한 SQLSTATE 값을 선택하려면 어떻게 해야 합니다.
이것은 주관적으로 정답이 있는 기술적인 질문이지 의견을 묻는 질문이 아닙니다!읽기 전에 "건설적이지 않다"는 이유로 삭제하지 마십시오.탁!
안녕하세요!
트리거 등의 에러가 검출되었을 때 시그널을 올리고, 그 후 외부 기능 내에서 처리하고 싶습니다.여러 유형의 오류가 있으며, 이러한 오류는 다르게 처리해야 합니다.우선 핸들러 내의 MESSAGE_TEXT를 체크하여 45000을 모두 잡을 수 있다고 생각했지만, 핸들러 내의 MESSAGE_TEXT에 액세스 할 수 없다는 것을 깨달았습니다(적어도 10.1.21-MariaDB 이하에서는 사용할 수 없습니다).그래서 각 에러 타입에 대해 SQLSTATE 값이 다른 시그널을 올려 구분하려고 합니다.
개별 오류에 대응하는 SQLSTATE 값을 선택하려면 어떻게 해야 합니까?
처음 두 문자는 클래스를 지정하는 것으로 알고 있습니다. '00'=> success, '01'=> warning, '02'=> not found, > '02'=> warning'입니다.또한 '45000'은 처리되지 않은 사용자 정의 예외를 의미하므로 일반 사용자 상승 시그널의 값입니다.그러나 신호가 '02'보다 큰 값으로 시작하는 경우 신호의 마지막 세 글자에 대한 값을 자유롭게 선택할 수 있습니까?
예를 들어 '42000'은 서버에서 발생한 오류인 ER_SP_WRONG_NAME(잘못된 루틴 이름)을 의미합니다.
그렇다면 올바른 전략은 무엇일까요?이미 의미가 있는 SQLSTATE와 충돌하지 않는 사용자가 올린 시그널에 적합한 SQLSTATE를 선택하려면 어떻게 해야 합니까?
언급URL : https://stackoverflow.com/questions/43481304/mysql-how-to-choose-an-appropriate-sqlstate-value-for-a-signal
'IT' 카테고리의 다른 글
Android 텍스트 파일은 어떻게 읽나요? (0) | 2022.11.27 |
---|---|
MariaDB - JSON 어레이를 인덱싱할 수 있습니까? (0) | 2022.11.27 |
'str' 개체에 특성 'filename'이 없습니다.Python 3 오류? (0) | 2022.11.27 |
PHP의 함수 안에 있는 함수 이름을 얻으려면 어떻게 해야 하나요? (0) | 2022.11.27 |
자바에서는 에폭(1970-01-01)부터 밀리초를 취득하려면 어떻게 해야 합니까? (0) | 2022.11.27 |