Así que estaba tratando de resolver esto, pero parece que la última línea (el cheque) no permite sub consultas en ella. ¿Alguna forma de hacer que esto funcione Oracle?Usando subconsulta en una declaración de verificación en Oracle
CREATE TABLE Tank (
n_id int,
day date,
level int,
CONSTRAINT pk_w_td PRIMARY KEY (n_id,day),
CONSTRAINT fk_w_td_tan FOREIGN KEY (n_id) REFERENCES Tanks ON DELETE CASCADE,
CHECK (level > 0 AND level <= (SELECT capacity FROM Tanks WHERE Tanks.n_id = TanksDay.n_id))
);
Aquí está la información de error:
Error at Command Line:7 Column:32 Error report: SQL Error: ORA-02251: subquery not allowed here
02251. 00000 - "subquery not allowed here"
*Cause: Subquery is not allowed here in the statement.
*Action: Remove the subquery from the statement.
Excellent question. Las restricciones generales de tabla cruzada (además de las restricciones FK) son una de las características que más me gustaría ver añadidas a Oracle. –