sql >> Databasteknik >  >> RDS >> Oracle

får fel ORA-00907 när du skapar en tabell i sql-utvecklaren

Jag antar att du försöker säkerställa att Book poster uppdateras när du ändrar Pname kolumnen i Publisher tabell, men Oracle har ingen on update cascade .

Se här för syntaxdiagrammet för references klausul.

För att ändra primärnycklar i Oracle har du några alternativ:

  • Skjut upp begränsningen (främmande nyckel) kontrollera tills commit, uppdatera sedan både förälder och barn inom transaktionen.

  • Skapa en ny förälder med de uppdaterade uppgifterna, byt sedan alla barn och ta sedan bort den ursprungliga föräldern. Allt i en transaktion såklart.

  • Sluta använda föränderlig data som nyckel. Det tog lång tid för DBA:er att övertyga mig om att artificiella (surrogat)nycklar borde användas snarare än sann data, men detta var användningsfallet som till slut vann mig över. Att använda en konstgjord nyckel (som aldrig behöver ändras) innebär att detta problem försvinner helt.




  1. Implementering av OOPS i Oracle

  2. Ladda en MySQL innodb-databas i minnet

  3. Kan EF6 generera mina modellobjekt från en ref-markör som returneras av en orakellagrad procedur

  4. Fel vid anslutning till databasen:(med klassen org.gjt.mm.mysql.Driver) Satsen (1) har ingen öppen markör