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

PDO-undtagelsen bliver ikke kastet for triggerfejl

Det er umuligt. Triggere (og hændelser) køres på DB baseret på DB-handlinger og er ikke direkte bundet til din forespørgsel - i det mindste som set på PHP-siden. Din PDO-forespørgsel lykkes, og det er alt, hvad din erklæring nogensinde vil vide, det faktum, at en trigger blev sat op til at gøre noget baseret på resultaterne af, hvad end din erklæring gjorde ved en eller anden tabel, er irrelevant.

De muligheder du har er:

  1. skriv endnu en forespørgsel for at bekræfte succesen af ​​alt, hvad udløseren skulle gøre
  2. ombryd muligvis den indledende forespørgsel i en lagret procedure, der kører forespørgslen og verificerer succesen af ​​udløserhandlingen. Kald derefter den lagrede proc i stedet for at køre forespørgslen direkte.



  1. få mysql select-sætning til at returnere fuldt kvalificerede kolonnenavne som table.field

  2. Tilsvarende funktion for DATEADD() i Oracle

  3. Simulere en DELETE CASCADE i MySQL?

  4. Hvordan ændres værdien af ​​en global variabel i en PL/SQL-pakke dynamisk?