sql >> Databasteknik >  >> RDS >> Mysql

Kan inte se rader infogade av en pågående transaktion när isoleringsnivån är READ_UNCOMMITTED

Med mitt lilla testskript dyker inga poster upp före commit om jag loggar in från en annan konsol. Jag kan dock välja de nyss infogade posterna i samma session. Så jag antar att du innan commit kan komma åt rader som redan finns i tabellen, men nu nya rader eller ändringar innan de commiteras.

<?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. sökkriterieskillnad mellan Like vs Contains() i oracle

  2. Fundamentals of tabelluttryck, del 13 – Inline tabellvärderade funktioner, fortsättning

  3. Skickar array till Oracle-proceduren från c#

  4. Effektivt sätt att infoga dataram från R till SQL