sql >> Database teknologi >  >> RDS >> Oracle

SQL-opdatering, slet og indsæt på samme tid

Citerer dokumentation for Oracle-transaktionserklæringer :

Også citerer wikipedia-transaktionsindlæg :

I dit tilfælde , kan du omslutte alle tre sætninger i en enkelt transaktion:

COMMIT;         ''This statement ends any existing transaction in the session.
SET TRANSACTION NAME 'my_crazy_update'; ''This statement begins a transaction 
                                         ''and names it sal_update (optional).
 UPDATE PS_EMAIL_ADDRESSES 
    SET PREF_EMAIL_FLAG='N' 
  WHERE EMPLID IN ('K0G004');

 DELETE FROM PS_EMAIL_ADDRESSES 
  WHERE EMPLID='K0G004' AND E_ADDR_TYPE='BUSN';

 INSERT INTO PS_EMAIL_ADDRESSES 
 VALUES('K0G004', 'BUSN', '[email protected]', 'Y');

COMMIT;

Dette er den bedste tilgang til at fange dit krav 'udfør alle sætninger ad gangen' .



  1. Tabelopdatering på PK og et andet felt i MySQL er sporadisk langsom

  2. Hvad er sql-forbindelsesstrengen, jeg skal bruge for at få adgang til localhost\SQLEXPRESS med Windows-godkendelse eller SQL-godkendelse?

  3. hente resultatet fra forespørgslen

  4. markeret bruger med etiket efter tidspunkt for hver måned