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

Fejlmeddelelse dårlig bindingsvariabel i trigger

Udløseren er defineret på ACCOUNT bord. Du har sendt definitionen af ​​CUSTOMER bord. Medmindre ACCOUNT tabellen har kolonner CustName og DOB , hvilket virker meget usandsynligt, kan du ikke henvise til :new.CustName eller :new.DOB -- :new posten er for den række, der i øjeblikket indsættes i ACCOUNT bord.

Hvor har du tænkt dig at få CustName og DOB at indsætte i Customer bord?

Hvis du tager et skridt tilbage, hvorfor er en trigger på Account tabel, der forsøger at indsætte en række i Customer bord i første omgang. Det virker som et usædvanligt dårligt design. CustID i Account tabel ville formentlig være en fremmednøgle, der refererer til Customer bord. Det ville dog betyde, at du kun kunne indsætte den overordnede række i en trigger, hvis du erklærer begrænsningerne som udskydbare og udskyder dem i begyndelsen af ​​hver transaktion. Udløseren ville generelt heller ikke have nogen mulighed for at bestemme informationen for Customer kolonner, som du vil udfylde, hvilket er kilden til den fejl, du får.




  1. mysql i listen validerer kun første id i listen. måske et klat problem

  2. Hvad er forskellen mellem MySQL, MySQLi og PDO?

  3. Kald lagret procedure ved hjælp af ADODB i PHP

  4. Hvordan konstruerer jeg en krydsdatabaseforespørgsel i PHP?