Mysql
 sql >> база данни >  >> RDS >> Mysql

Не се виждат редове, вмъкнати от изпълнявана транзакция, когато нивото на изолация е READ_UNCOMMITTED

С моя малък тестов скрипт не се показват записи преди комита, ако вляза от друга конзола. Мога обаче да избера току-що вмъкнатите записи в същата сесия. Така че предполагам, че преди комитирането може да имате достъп до редове, които вече са в таблицата, но сега до нови редове или промени, преди да бъдат записани.

<?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. Преобразуване на IP в Long в MySQL

  2. mysql съвпадение срещу множество думи

  3. Условие WHERE в MySQL с 16 различни примера за заявка

  4. как да използвам sql join в mysql

  5. Как да напиша (MySQL) LIMIT в SQL Server?