MySQL存储过程中一些基本的异常处理教程_MySQL
有时候,不希望存储过程抛出错误中止执行,而是希望返回一个错误码。 Mysql 支持异常处理,通过定义 CONTINUE/EXIT 异常处理的 HANDLER 来捕获 SQLWARNING/NOT FOUND/SQLEXCEPTION (警告 / 无数据 / 其他异常)。其中, FOR 后面可以改为 SQLWARNING, NOT FOUND, SQLEXCEPTION 来指示所有异常都处理,相当于 oracle 中的 others 。例如,当不进行异常处理时,以下代码将直接抛出一个 ERROR 1062 (23000) 错误:
CREATE PROCEDURE test_proc_ins1( IN i_id INT, IN i_name VARCHAR(100) ) BEGIN INSERT INTO testproc VALUES (i_id,i_name); INSERT INTO testproc VALUES (i_id,i_name); END;
经过异常处理后,可以避免抛出错误,而是定义一个返回参数 o_ret 赋予特殊值来表示失败,这样,比如在 java 代码中,可以通过获取返回值而不是捕获异常的方式来处理业务逻辑。例如将返回值设置为 -1:
CREATE PROCEDURE test_proc_ins1( IN i_id INT, IN i_name VARCHAR(100), OUT o_ret INT) BEGIN DECLARE EXIT HANDLER FOR SQLSTATE '23000' set o_ret = -1; -- 也可以这样使用: -- DECLARE EXIT HANDLER FOR SQLWARNING,NOT FOUND,SQLEXCEPTION set o_ret=-1; INSERT INTO testproc VALUES (i_id,i_name); INSERT INTO testproc VALUES (i_id,i_name); set o_ret = 1; END;
当然,对于特定的SQL语句,也可以指定比如主键冲突,就rollback;
DECLARE exit HANDLER FOR SQLSTATE '23000' delimiter // CREATE PROCEDURE TEST() BEGIN DECLARE exit HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND begin rollback; insert into bb values('error'); end; START TRANSACTION; INSERT INTO aa VALUES (1); INSERT INTO aa VALUES (2); COMMIT; END; // CALL test()//

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











여름에 비가 내린 후에는 아름답고 마법 같은 특별한 날씨 장면인 무지개를 자주 볼 수 있습니다. 이 역시 사진에서 볼 수 있는 보기 드문 장면으로, 매우 포토제닉하다. 무지개가 나타나는 데에는 몇 가지 조건이 있습니다. 첫째, 공기 중에 충분한 물방울이 있고, 둘째, 태양이 낮은 각도로 빛납니다. 따라서 비가 그친 후 오후에 무지개를 보는 것이 가장 쉽습니다. 그러나 무지개의 형성은 날씨, 빛, 기타 조건의 영향을 크게 받기 때문에 일반적으로 짧은 시간 동안만 지속되며, 가장 잘 볼 수 있고 촬영할 수 있는 시간은 더욱 짧습니다. 그러면 무지개를 만났을 때 어떻게 제대로 기록하고 고품질로 사진을 찍을 수 있습니까? 1. 무지개를 찾아보세요. 위에서 언급한 조건 외에도 무지개는 대개 햇빛 방향으로 나타납니다. 즉, 태양이 서쪽에서 동쪽으로 빛날 경우 무지개가 동쪽에서 나타날 확률이 높습니다.

PHP를 사용하여 MySQL 테이블을 생성하려면 다음 단계가 필요합니다. 데이터베이스에 연결합니다. 데이터베이스가 없으면 작성하십시오. 데이터베이스를 선택합니다. 테이블을 생성합니다. 쿼리를 실행합니다. 연결을 닫습니다.

MySQL 8.4(2024년 최신 LTS 릴리스)에 도입된 주요 변경 사항 중 하나는 "MySQL 기본 비밀번호" 플러그인이 더 이상 기본적으로 활성화되지 않는다는 것입니다. 또한 MySQL 9.0에서는 이 플러그인을 완전히 제거합니다. 이 변경 사항은 PHP 및 기타 앱에 영향을 미칩니다.

가상시장의 확대는 가상화폐 유통과 불가분의 관계이며, 당연히 가상화폐 이체 문제와도 불가분의 관계에 있습니다. 일반적인 전송 오류는 주소 복사 오류이고, 또 다른 오류는 체인 선택 오류입니다. 가상 화폐를 잘못된 체인으로 이체하는 것은 여전히 까다로운 문제이지만, 이체 작업 경험이 부족하여 초보자가 잘못된 체인을 이체하는 경우가 많습니다. 잘못된 링크는 제3자 플랫폼을 통해 검색할 수 있지만 성공하지 못할 수도 있습니다. 다음으로, 가상자산을 더 잘 관리할 수 있도록 에디터가 자세히 알려드립니다. 잘못된 가상 화폐 체인을 검색하는 방법은 무엇입니까? 잘못된 체인으로 전송된 가상 화폐를 검색하는 과정은 복잡하고 어려울 수 있지만 전송 세부 정보를 확인하고 거래소 또는 지갑 제공업체에 문의하고 개인 키를 호환되는 지갑으로 가져오고 크로스 체인 브리지 도구를 사용하여

C++ 예외 처리를 사용하면 예외를 발생시키고 try-catch 블록을 사용하여 이를 잡아 런타임 오류를 처리하는 사용자 정의 오류 처리 루틴을 만들 수 있습니다. 1. 예외 클래스에서 파생된 사용자 정의 예외 클래스를 생성하고 what() 메서드를 재정의합니다. 2. 예외를 발생시키려면 throw 키워드를 사용합니다. 3. 예외를 포착하고 가능한 예외 유형을 지정합니다. 처리.

PHP는 MySQL 테이블의 데이터를 삭제하기 위해 다음 방법을 제공합니다. DELETE 문: 테이블에서 조건과 일치하는 행을 삭제하는 데 사용됩니다. TRUNCATETABLE 문: 자동 증가된 ID를 포함하여 테이블의 모든 데이터를 지우는 데 사용됩니다. 실제 사례: HTML 양식과 PHP 코드를 사용하여 데이터베이스에서 사용자를 삭제할 수 있습니다. 양식은 사용자 ID를 제출하고 PHP 코드는 DELETE 문을 사용하여 사용자 테이블에서 ID와 일치하는 레코드를 삭제합니다.

PHP를 사용하여 MySQL 연결 풀을 설정하면 성능과 확장성을 향상시킬 수 있습니다. 단계에는 다음이 포함됩니다. 1. MySQLi 확장을 설치합니다. 2. 연결 풀 클래스를 생성합니다. 4. 연결 풀 인스턴스를 생성합니다. 연결 풀링을 통해 애플리케이션은 각 요청에 대해 새 데이터베이스 연결을 생성하는 것을 방지하여 성능을 향상시킬 수 있습니다.

PHP 예외 처리: 예외 추적을 통해 시스템 동작 이해 예외는 PHP에서 오류를 처리하는 데 사용하는 메커니즘이며 예외는 예외 처리기에 의해 처리됩니다. 예외 클래스 Exception은 일반적인 예외를 나타내고, Throwable 클래스는 모든 예외를 나타냅니다. throw 키워드를 사용하여 예외를 발생시키고 try...catch 문을 사용하여 예외 처리기를 정의합니다. 실제 사례에서는 예외 처리를 사용하여 오류가 발생할 때 응용 프로그램이 정상적으로 실패할 수 있도록 계산() 함수에서 발생할 수 있는 DivisionByZeroError를 캡처하고 처리합니다.
