sql >> Database >  >> RDS >> Mysql

Kan geen rijen zien die zijn ingevoegd door een lopende transactie wanneer het isolatieniveau READ_UNCOMMITTED is

Met mijn kleine testscript verschijnen er geen records voor de commit als ik inlog vanaf een andere console. Ik kan echter de zojuist ingevoegde records in dezelfde sessie selecteren. Dus ik neem aan dat je vóór de commit toegang hebt tot rijen die al in de tabel staan, maar nu nieuwe rijen of wijzigingen voordat ze worden vastgelegd.

<?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. Hoe de som van meerdere kolommen in een tabel in SQL Server 2005 te vinden?

  2. MySQL-zelfstudie - MySQL-serverlogboeken beheren:roteren, comprimeren, behouden en verwijderen

  3. Automatische plancorrectie in SQL Server

  4. MySQL-functies aanroepen in lithium