Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể thấy các hàng được chèn bởi một giao dịch đang chạy khi mức cô lập là READ_UNCOMMITTED

Với tập lệnh thử nghiệm nhỏ của tôi, không có bản ghi nào hiển thị trước cam kết nếu tôi đăng nhập từ một bảng điều khiển khác. Tuy nhiên, tôi có thể chọn các bản ghi vừa được chèn trong cùng một phiên. Vì vậy, tôi giả sử rằng trước khi cam kết, bạn có thể truy cập các hàng đã có trong bảng, nhưng bây giờ các hàng mới hoặc các thay đổi trước khi chúng được cam kết.

<?php

require_once('db.php');

q( 'drop table if exists t' );
q( 'create table t (id integer not null auto_increment primary key, v datetime) engine=innodb' );

q( 'set transaction isolation level read uncommitted' );
q( 'start transaction' );
q( 'insert into t (v) values (now()),(now()),(now())' );

echo q1( 'count(*)', 't', 'true'); // translates to "select count(*) from t where true"; 
// echoes "3" to the console

// wait for input
$handle = fopen ("php://stdin","r");
$line = fgets($handle);

// with a mysql client from a 2nd console at this point no new records show in table t

q( 'commit' );

// after this point all new records show up in table t from a 2nd session.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ĐẶT một biến trong câu lệnh SELECT - MySQL

  2. Biểu mẫu thông thường đầu tiên và Tên và Họ

  3. Các SP và Sự kiện MySQL được Google Cloud SQL tự động khôi phục

  4. Chèn MySQL vào Lựa chọn

  5. MySQL TẠO NGƯỜI DÙNG với một biến?