MySQL 트랜잭션
MySQL 트랜잭션은 주로 대규모 작업과 복잡성이 높은 데이터를 처리하는 데 사용됩니다. 예를 들어 인사관리시스템에서 사람을 삭제하면 그 사람의 기본정보도 함께 삭제해야 하고, 사서함, 물품 등 그 사람과 관련된 정보도 함께 삭제해야 한다. 이런 식으로 이들 데이터베이스는 작업문은 거래를 구성합니다.
MySQL에서는 Innodb 데이터베이스 엔진을 사용하는 데이터베이스나 테이블만 트랜잭션을 지원합니다.
트랜잭션 처리를 사용하여 데이터베이스의 무결성을 유지하고 일괄 SQL 문이 완전히 실행되거나 실행되도록 할 수 있습니다. 모두 실행하지 마세요
트랜잭션은 삽입, 업데이트, 삭제 문을 관리하는 데 사용됩니다
일반적으로 트랜잭션은 4가지 조건(ACID)을 충족해야 합니다: 원자성(원자성), 일관성(안정성)) , Isolation(격리), Durability(신뢰성)
1. 트랜잭션의 원자성: 일련의 트랜잭션이 성공하거나 철회됩니다.
2. 안정성: 불법 데이터(외래 키 제약 등)가 있는 경우 거래가 철회됩니다.
3. 격리: 트랜잭션이 독립적으로 실행됩니다. 한 거래의 결과가 다른 거래에 영향을 미치는 경우 다른 거래가 철회됩니다. 트랜잭션을 100% 격리하려면 속도가 희생되어야 합니다.
4. 신뢰성: 소프트웨어나 하드웨어가 충돌한 후 InnoDB 데이터 테이블 드라이버는 로그 파일을 사용하여 이를 재구성하고 수정합니다. 신뢰성과 고속을 동시에 달성할 수는 없습니다. innodb_flush_log_at_trx_commit 옵션은 트랜잭션을 로그에 저장할 시기를 결정합니다.
Mysql 콘솔의 트랜잭션을 사용하여 운영
1. 거래 시작
start transaction
2. 저장 포인트 만들기
save point 保存点名称
3. 작업
4. 문제가 없으면 제출할 수 있습니다. 문제가 있으면 롤백하세요.
PHP에서 트랜잭션 인스턴스 사용
<?php $handler=mysql_connect("localhost","root","password"); mysql_select_db("task"); mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行 mysql_query("BEGIN");//开始事务定义 if(!mysql_query("insert into trans (id) values('2')")) { mysql_query("ROOLBACK");//判断当执行失败时回滚 } if(!mysql_query("insert into trans (id) values('4')")) { mysql_query("ROOLBACK");//判断执行失败回滚 } mysql_query("COMMIT");//执行事务 mysql_close($handler); ?
【관련 추천】
1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드
위 내용은 MySQL 트랜잭션 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!