sql >> Database teknologi >  >> RDS >> PostgreSQL

Samtidig proces indsættelse af data i database

Den enkleste måde synes at være at bruge transaktionsisoleringsniveauet 'serialiserbar', som forhindrer fantomlæsninger (andre personer indsætter data, som ville tilfredsstille et tidligere SELECT under din transaktion).

if (!conn.getMetaData().supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE)) {
    // OK, you're hosed. Hope for your sake your drivers supports this isolation level 
}
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);

Der er også teknikker som Oracles "MERGE"-erklæring - en enkelt erklæring, der 'indsætter eller opdaterer', afhængigt af om dataene er der. Jeg ved ikke om Postgres har en tilsvarende, men der er teknikker til at 'falske det' -- se f.eks. Sådan skriver man INSERT HVIS IKKE FINDER forespørgsler i standard SQL .



  1. Sådan installeres InfluxDB på Ubuntu 20.10

  2. Node.js MySQL har brug for vedvarende forbindelse

  3. Hvordan erklærer man en variabel i MySQL?

  4. MySQL-ydelse – 5 parametre fra konfigurationsfil