SQL Server:在一个表上创建两个外键时出错

时间:2018-09-17 04:47:26

标签: sql sql-server ssms normalization

create table TiposPeliculas
(
    id_tipoPelicula int identity (1, 1), 
    descipcion varchar (30)
    constraint pk_tipoPelicula primary key(id_tipoPelicula)
)

create table Generos
(
     id_genero int identity (1,1), 
     descripcion varchar(20)
     constraint pk_generos primary key(id_genero)
)

create table Peliculas 
(
     id_pelicula int not null, 
     id_tipoPelicula int, 
     id_genero int, 
     titulo varchar (30),
     duracion time,
     idioma varchar (30),
     sub bit
     constraint pk_pelicula primary key (id_pelicula, id_tipoPelicula)
     constraint fk_generoPelicula foreign key (id_genero) references Generos (id_genero),
     constraint fk_tipoPeliculasDePeli foreign key (id_tipoPelicula) references TipoPeliculas (id_tipoPelicula)
)

id_tipoPelicula的FOREIGN KEY引发错误:

  

外键“ fk_tipoPeliculasDePeli”引用无效的表“ TipoPeliculas”

2 个答案:

答案 0 :(得分:0)

create table Peliculas 
(
      id_pelicula int not null, 
      id_tipoPelicula int, 
      id_genero int, 
      titulo varchar (30),
      duracion time,
      idioma varchar (30),
      sub bit 
  constraint pk_pelicula primary key (id_pelicula, id_tipoPelicula)  
  constraint fk_generoPelicula foreign key (id_genero) references Generos (id_genero), 
  constraint fk_tiposPeliculasDePeli foreign key (id_tiposPelicula) references TiposPeliculas (id_tiposPelicula)
)

这将解决关系名称TiposPeliculas中拼写错误的错误。

答案 1 :(得分:0)

错误:

  

外键“ fk_tipoPeliculasDePeli”引用无效的表“ TipoPeliculas”

它说,外键是对无效表“ TipoPeliculas”的引用,这意味着表“ TipoPeliculas”不存在。

在您的问题中,表名称为“ TiposPeliculas”。因此,您似乎需要在引用中更正表名。

在引用中,列名称也应为“ id_tipoPelicula”,而不是“ id_tiposPelicula”。

运行以下代码

create table TiposPeliculas
(
    id_tipoPelicula int identity (1, 1), 
    descipcion varchar (30)
    constraint pk_tipoPelicula primary key(id_tipoPelicula)
)

create table Generos
(
     id_genero int identity (1,1), 
     descripcion varchar(20)
     constraint pk_generos primary key(id_genero)
)

create table Peliculas 
(
     id_pelicula int not null, 
     id_tipoPelicula int, 
     id_genero int, 
     titulo varchar (30),
     duracion time,
     idioma varchar (30),
     sub bit
     constraint pk_pelicula primary key (id_pelicula, id_tipoPelicula)
     constraint fk_generoPelicula foreign key (id_genero) references Generos (id_genero),
     constraint fk_tipoPeliculasDePeli foreign key (id_tipoPelicula) references TiposPeliculas (id_tipoPelicula)
)