Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/09/2008, 10:24
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Pequeño problema con script

Bueno, eso es por algo más básico y fundamental: Un campo no clave no puede estar referenciado a un campo clave.

Además, estabas definiendo los nombres de los índices de las constraint de dos tablas de la misma forma. Cada constraint debe tener un nombre distinto. No se comparten.

Código:
drop table if exists encuesta;
drop table if exists video;
drop table if exists articulo;
drop table if exists noticia;
drop table if exists `user`;

create table `user`(
  username varchar(16) not null,
  passwd char(16) not null,
  email varchar(100) not null,

  constraint PK_username primary key (username)
);


create table noticia(

  id integer not null primary key,
  username varchar(16) not null,
  tipo varchar(15),
  genero varchar(16),
  fecha text(15),
  titulo varchar(50),
  constraint FK_user foreign key (username) references `user`(username)

);

create table articulo(

 id integer not null,
 noticia longtext,

 constraint FK_noticia foreign key (id) references noticia (id)

);

create table encuesta(
  idencuesta integer not null ,
  username varchar(16) not null,
  pregunta varchar(50) not null,
  respuesta1 varchar(50) not null,
  respuesta2 varchar(50) not null,
  respuesta3 varchar(50) not null,
  respuesta4 varchar(50) not null,
  constraint PK_ID primary key (idencuesta),
  constraint FK_userencuesta foreign key (username) references `user`(username)
);

create table video(
   id integer not null,
   noticia longtext ,
  constraint PK_videoID primary key (id),
  constraint FK_noticiavideo foreign key (id) references noticia(id)
);
Además USER es el nombre de la tabla donde MySQL guarda los usuarios y es un tipo de dato (USUARIO), por lo que es palabra reservada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)