Hola

CREATE TABLE Disco_Duro(
Num_Mat NUMBER NOT NULL CHECK(Num_Mat >0) REFERENCES Computador ON DELETE CASCADE,
Letra_Hd VARCHAR2(1) CHECK (Letra_HD IN ('C', 'D', 'E', 'F')),
Tipo_BUS VARCHAR2 (4) NOT NULL CHECK (Tipo_BUS IN ('SCSI', 'IDE')),
Tam_Hd NUMBER NOT NULL,
CONSTRAINT PK_Disco_Duro PRIMARY KEY (Num_Mat, Letra_Hd));
CREATE TABLE Particion(
Num_Mat NUMBER NOT NULL,
Letra_Hd VARCHAR2(1) CHECK (Letra_HD IN ('C', 'D', 'E', 'F')),
Num_Part NUMBER CHECK (Num_Part > 0),
Tam_Part NUMBER NOT NULL CHECK(Tam_Part > 0),
Sis_Op VARCHAR2(20),
Pass_Admin_So VARCHAR2(10),
CONSTRAINT PK_Particion PRIMARY KEY (Num_Mat, Letra_Hd, Num_Part),
CONSTRAINT FK_Part_Hd FOREIGN KEY (Num_Mat, Letra_Hd) REFERENCES Disco_Duro
ON DELETE CASCADE
ON UPDATE CASCADE
);
Bueno, ahi estan pegadas las tablas, y cuando lanzas la segunda, la de las particiones sale un error tal que asi:
SQL> CREATE TABLE Particion(
2 Num_Mat NUMBER NOT NULL,
3 Letra_Hd VARCHAR2(1) CHECK (Letra_HD IN ('C', 'D', 'E', 'F')),
4 Num_Part NUMBER CHECK (Num_Part > 0),
5 Tam_Part NUMBER NOT NULL CHECK(Tam_Part > 0),
6 Sis_Op VARCHAR2(20),
7 Pass_Admin_So VARCHAR2(10),
8 CONSTRAINT PK_Particion PRIMARY KEY (Num_Mat, Letra_Hd, Num_Part),
9 CONSTRAINT FK_Part_Hd FOREIGN KEY (Num_Mat, Letra_Hd) REFERENCES Disco_Duro
10 ON DELETE CASCADE
11 ON UPDATE CASCADE
12 );
ON UPDATE CASCADE
*
ERROR en línea 11:
ORA-00907: falta el paréntesis derecho
¿A qué se debe este error?, ¿Qué hay que hacer para que funcione el on update cascade?.
La cuestión es que de los 2 campos que hay en la clave ajena se actualice la letra_hd.
Gracias de antemano por las contestaciones.

2 respuestas

Respuesta
1
Lo que pasa es que en Mysql no puedes crear llaves foráneas.
Respuesta
1
No recuerdo a que había originado esta pregunta.
Aparentemente en esta parte, cuando le querés indicar que use cascade update y delete, 9 CONSTRAINT FK_Part_Hd FOREIGN KEY (Num_Mat, Letra_Hd) REFERENCES Disco_Duro
10 ON DELETE CASCADE
11 ON UPDATE CASCADE
12 );
El compilador no puede interpretar que lo de cascade se refiere a la constraint que vs querés.
¿Cómo armaste la sentencia, usaste algún soft que la arma o la escribiste vos?
Personalmente estas cosas las resuelvo con un soft que me hace los sqls de creción de tablas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas