sql >> Databáze >  >> RDS >> Mysql

Když je úroveň izolace READ_UNCOMMITTED, nelze zobrazit řádky vložené spuštěnou transakcí

S mým malým testovacím skriptem se před odevzdáním nezobrazí žádné záznamy, pokud se přihlásím z jiné konzole. Mohu však vybrat právě vložené záznamy ve stejné relaci. Předpokládám tedy, že před potvrzením můžete přistupovat k řádkům, které již v tabulce jsou, ale nyní k novým řádkům nebo změnám před jejich potvrzením.

<?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. Jak přidat klienta pomocí JDBC pro ClientDetailsServiceConfigurer na jaře?

  2. Jak spravovat připojení DB pouze pro čtení na úrovni aplikace

  3. Ovladač qt5.1.1 mysql ubuntu QMYSQL není načten

  4. Získávání zadaných výsledků z ActiveRecord raw SQL