sql >> Database >  >> RDS >> Oracle

Foutmelding slechte bindvariabele in trigger

De trigger wordt gedefinieerd op de ACCOUNT tafel. Je hebt de definitie van de CUSTOMER . gepost tafel. Tenzij de ACCOUNT tabel heeft kolommen CustName en DOB , wat hoogst onwaarschijnlijk lijkt, kunt u niet verwijzen naar :new.CustName of :new.DOB -- de :new record is voor de rij die momenteel wordt ingevoegd in de ACCOUNT tafel.

Waar wilt u de CustName vandaan halen? en DOB om in te voegen in de Customer tafel?

Een stap terug doen, waarom is er een trigger op het Account tabel die een rij probeert in te voegen in de Customer tafel in de eerste plaats. Dat lijkt me een buitengewoon slecht ontwerp. De CustID in het Account tabel zou vermoedelijk een externe sleutel zijn die verwijst naar de Customer tafel. Dat zou echter betekenen dat u de bovenliggende rij alleen in een trigger kunt invoegen als u de beperkingen als uitstelbaar verklaart en aan het begin van elke transactie uitstelt. De trigger zou over het algemeen ook geen manier hebben om de informatie voor de Customer . te bepalen kolommen die u wilt invullen, wat de oorzaak is van de fout die u krijgt.




  1. JFreechart-diagram met tijd uit SQL Database

  2. Haal de uitvoeringstijd van het sql-script op in oracle sqlplus

  3. Roep pusher op wanneer mysql is gewijzigd

  4. Foreach of For - dat is de vraag