Latest web development tutorials

MySQL의 트랜잭션

MySQL의 트랜잭션 처리 동작은 주로 대용량 데이터 높은 복잡도에 사용된다. 데이터베이스 작업 문은 트랜잭션을 구성하도록 예를 들어, 인사 관리 시스템, 등 사서함, 기사로, 당신은 당신이 기본 정보 책임자를 제거해야, 즉, 사람을 제거하고 책임자는 관련 정보를 삭제 !

  • 만 MySQL 데이터베이스 엔진에서 트랜잭션을 지원하는 이노 디비 데이터베이스 또는 테이블을 사용
  • 트랜잭션은 SQL 명령문의 벌크 어느 모두 실행되거나 모두 실행되지 않도록 데이터베이스의 무결성을 유지하기 위해 사용될 수있다
  • 문을 삭제 업무 삽입, 업데이트를 관리하는 데 사용

일반적으로, 트랜잭션이 충족해야합니다 네 가지 조건 (ACID) : 자성 (자성), 일관성 (안정성), 절연 (절연), 내구성 (신뢰성)

  • 1, 원자 트랜잭션하십시오 거래의 설정, 또는 성공 또는 철회.
  • 2. 안정성 : 불법 데이터 (외래 키 제약 등), 철수 거래.
  • 3. 분리 : 독립적으로 트랜잭션. 거래 후 결과가 다른 트랜잭션에 영향을 미치는 다른 트랜잭션이 철회됩니다. 트랜잭션 격리의 100 % 필요가 속도를 희생합니다.
  • 4 신뢰성 : 소프트웨어 및 하드웨어 충돌 후 이노 데이터 테이블 구동 재구성 로그 파일의 수정을 사용한다. 이 트랜잭션 로그를 저장하기로 결정 때 안정성과 속도가에서 innodb_flush_log_at_trx_commit 옵션을 모두 가질 수 없습니다.

MySQL의에서 콘솔을 작동 할 트랜잭션을 사용

한 트랜잭션의 시작

start transaction

2 점을 절약 할

savepoint 保存点名称

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("ROLLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROLLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>