SQL - ¿Por que da error al crear tablas?

 
Vista:
sin imagen de perfil
Val: 12
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

¿Por que da error al crear tablas?

Publicado por paco011 (7 intervenciones) el 10/02/2017 20:25:26
Tengo el siguiente codigo, pero al ejecutarlo para crear las tablas, se crean las dos primeras y la ultima no:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
create table salas
(
  S char(2) primary key check(S = 'S_'),
  nombre varchar2(15) not null,
  capacidad number(3) not null,
  filas number(2)
);
 
create table peliculas
(
  P char(2) primary key,
  nombre varchar2(25) not null,
  califEdad char(2) check(califEdad = 'TP' or califEdad in ('18', '7')),
  ciudadProduccion varchar2(15) not null
);
 
create table proyecciones
(
  S char(2),
  P char(2),
  hora varchar2(5) check(hora = '__:__'),
  ocupacion number(3),
  constraint cp_pr primary key (S, P),
  constraint ce_pr_sa foreign key (S) references salas (S),
  constraint ce_pr_pe foreign key (P) references salas (P)
);

Y este error me da:
Informe de error -
Error SQL: ORA-00904: "P": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:

No sé cómo solucionarlo, espero que puedan ayudarme. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

¿Por que da error al crear tablas?

Publicado por Isaias (1921 intervenciones) el 11/02/2017 00:06:57
El mensaje de error es muy, pero muy EXPLICITO

constraint ce_pr_pe foreign key (P) references salas (P)

¿Donde esta la columna P en la tabla SALAS?, ¿No deberia ser en la tabla PROYECCIONES?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

¿Por que da error al crear tablas?

Publicado por Eloy (1 intervención) el 11/02/2017 00:24:45
El problema es que en la tabla salas no has definido la columna (campo) P, y por lo tanto no podrias referenciales para integridad de datos... me parece que en la ultima tabla llamada proyecciones lo que quieres es relacionar el campo p con la tabla peliculas...


1
2
3
4
5
6
7
8
9
10
create table proyecciones
(
S char(2),
P char(2),
hora varchar2(5) check(hora = '__:__'),
ocupacion number(3),
constraint cp_pr primary key (S, P),
constraint ce_pr_sa foreign key (S) references salas (S),
constraint ce_pr_pe foreign key (P) references PELICULAS (P)
);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

¿Por que da error al crear tablas?

Publicado por paco01 (7 intervenciones) el 14/02/2017 12:33:56
Ha sido un error mío, pero me han ayudado a solucionarlo. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar