이 글의 예시에서는 동시 상황에서 데이터 중복을 방지하기 위한 Yii+MYSQL 잠금 테이블 방법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하십시오.
테이블 읽기 잠금 잠금
스레드가 테이블에 대한 읽기 잠금을 획득하면 이 스레드와 다른 모든 스레드는 테이블에서 잠금을 읽을 수만 있습니다. 테이블 읽기 데이터, 쓰기 작업을 수행할 수 없습니다.
lock tables user read;//读锁定表 unlock tables;//解锁 lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞
lock table write lock
스레드가 테이블에 대한 쓰기 잠금을 얻으면 잠금을 소유한 스레드만 테이블에서 읽고 쓸 수 있습니다. 다른 스레드는 차단됩니다.
lock tables user write;//写锁定表 unlock tables;//解锁
Yii의 사용 예
/** * 当日单项内容状态 */ public function getPointAready($marke,$dayTime){ $model = SysRun::model()->findByAttributes(array('syr_marking'=>$marke,'syr_daytime'=>$dayTime)); if(empty($model)){ //表写锁定 Yii::app()->db->createCommand()->setText("lock tables {{sys_run}} WRITE")->execute(); $model = new SysRun(); $model->syr_marking = $marke; $model->syr_daytime = $dayTime; $model->syr_val = 0; $model->syr_subval = 0; $model->save(); //表解锁 Yii::app()->db->createCommand()->setText("unlock tables")->execute(); } return $model; }
이 기사가 Yii 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그램 설계에 도움이 되기를 바랍니다.
동시성에서 중복 데이터를 방지하기 위한 Yii+MYSQL 테이블 잠금 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!