sql >> Database >  >> RDS >> Mysql

Hoe phantom reads produceren?

De "phantom read" in MySQL op RR-isolatieniveau is diep verborgen, maar kan deze nog steeds reproduceren. Dit zijn de stappen:

  1. maak tabel ab (a int primaire sleutel, b int);

  2. Tx1:
    begin;
    selecteer * van ab; // lege set

  3. Tx2:
    begin;
    invoegen in ab-waarden (1,1);
    commit;
  4. Tx1:
    selecteer * van ab; // lege set, verwachte phantom read ontbreekt.
    update ab set b =2 waarbij a =1; // 1 rij aangetast.
    selecteer * van ab; // 1 rij. fantoom lees hier!!!!
    toezeggen;


  1. Hoe expressie in select-statement in Postgres te evalueren

  2. inclusief ontbrekende (nul-count) rijen bij gebruik van GROUP BY

  3. cursor.execute(INSERT INTO im_entry.test (+entrym+) WAARDEN ('+p+');)

  4. MySQL selecteer geformatteerde datum uit millisecondeveld