개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.24 08:17

Session::setSavepoint 관련 질문

목록
  • DP전문가 1일 전 2025.05.24 08:17
  • 3
    1
저는 MySQL에서 Transaction을 사용할 때 Session::setSavepoint를 사용하여 저장점을 설정하고자 하는데요.

Session::setSavepoint의 목적과 사용법을 알려주시면 감사드리겠습니다.

저는 현재 MySQL 8.0 버전의 DBMS를 사용 중입니다.

Session::setSavepoint를 사용하여 여러개의 저장점을 설정하고, 나중에 필요할 때 rollback 하게 할 수 있는지 궁금합니다.

또한, Session::setSavepoint를 사용할 때 Transaction 내에서만 사용해야 하나요? 아니면 Transaction 외부에서도 사용할 수 있나요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    Session::setSavepoint의 목적은 Transaction 내에서 임시 저장점을 설정하여, 필요할 때 rollback 하거나 commit 할 수 있도록 하는 것입니다.

    사용법은 다음과 같습니다.

    ```php
    $conn = new mysqli("localhost", "username", "password", "database");

    // Transaction 시작
    $conn->autocommit(false);

    // 저장점 설정
    $conn->query("SET autocommit = 0");
    $sb = $conn->query("SET SESSION sql_mode = 'NO_AUTO_VALUE_ON_ZERO';");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION READ ONLY = 0;");
    $sb = $conn->query("SET SESSION TRANSACTION READ ONLY = 1;");
    $sb = $conn->query("SET SESSION TRANSACTION READ WRITE = 1;");
    $sb = $conn->query("SET SESSION TRANSACTION READ ONLY = 0;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;");
    $sb = $conn->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;");
    $sb = $conn->query("SET SESSION

    2025-05-24 08:18

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 22,365건 / 9 페이지

검색

게시물 검색