sql >> Base de Datos >  >> RDS >> Oracle

obteniendo el error ORA-00907 al crear una tabla en el desarrollador sql

Supongo que está tratando de asegurarse de que el Book los registros se actualizan cada vez que cambia el Pname columna en el Publisher tabla, pero Oracle no tiene on update cascade .

Consulte aquí para el diagrama de sintaxis de las references cláusula.

Para cambiar las claves principales en Oracle, tiene algunas opciones:

  • Aplazar la restricción (clave externa) verifique hasta confirmar, luego actualice tanto el padre como el hijo dentro de la transacción.

  • Crear un nuevo padre con los detalles actualizados, luego vaya a cambiar todos los hijos, luego elimine el padre original. Todo en una transacción, por supuesto.

  • Deje de usar datos mutables como clave. Los DBA tardaron mucho en convencerme de que se deberían usar claves artificiales (sustitutas) en lugar de datos verdaderos, pero este fue el caso de uso que finalmente me convenció. El uso de una clave artificial (que nunca tiene que cambiar) hace que este problema desaparezca por completo.