반응형
MySQL은 다른 세션에 삽입된 행을 선택할 수 없습니다.
제 질문은 제목에 있습니다.
응용 프로그램에서 MySQL 세션을 열면 해당 응용 프로그램이 다른 세션을 만드는 스크립트를 호출합니다.새 세션에 레코드를 삽입하지만 이전 세션에서 선택하면 삽입된 행을 볼 수 없습니다.
다음은 삽입 쿼리입니다.
INSERT INTO VCS.project_files (track_nbr, path, filename)
VALUES ('$track_nbr', '$path', '$filename');
다음은 선택 항목입니다.
SELECT pf.project_file_id, pf.track_nbr, pf.filename, pf.path, pf.status
FROM VCS.project_files pf;
이는 '반복 가능한 읽기'로 설정된 격리 수준 때문이라는 것을 알게 되었습니다.'반복 가능한 읽기'는 말하는 그대로를 의미하며, 이전 세션에서 읽은 각 읽기에는 동일한 행이 지정됩니다.
이 문제를 해결하려면 다음을 수행하여 데이터베이스를 'read committed'로 설정해야 합니다.
에 행
/etc/my.cnf
(우분투)/etc/my.cnf.d/my.cnf
(CentOS):[mysqld] binlog_format = row transaction-isolation = READ-COMMITTED
MySQL 재시작 중(Ubuntu):
sudo service mysql restart
그러면 모든 세션에서 다른 세션에서 커밋된 변경을 볼 수 있습니다.
Oracle 데이터베이스(기본적으로 읽기 커밋됨)에 익숙하고 MySQL은 다릅니다(기본적으로 반복 가능한 읽기).
언급URL : https://stackoverflow.com/questions/35470745/mysql-cannot-select-a-row-inserted-in-a-different-session
반응형
'programing' 카테고리의 다른 글
팬더 컬럼의 값을 dict로 다시 매핑하고 NaNs를 보존합니다. (0) | 2022.10.20 |
---|---|
Data Transfer Object(DTO; 데이터 전송 객체)가 안티 패턴인 이유는 무엇입니까? (0) | 2022.10.20 |
Student Data txt 파일 내의 데이터를 읽고 학생의 평균을 계산하려면 어떻게 해야 합니까?또한 구조물을 통해 스위치로 전송합니다. (0) | 2022.10.20 |
Regex를 사용하여 파일을 해석해야 합니까, 아니면 더 나은 방법이 있습니까? (0) | 2022.10.20 |
문자열에 PHPUnit에 다른 문자열이 포함되어 있는지 테스트하는 방법 (0) | 2022.10.20 |