Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Referencias

Estas en el tema de Referencias en el foro de Bases de Datos General en Foros del Web. Hola, tengo el siguiente código pero me da error, estoy utilizando MySQL 4.0.x Código PHP: CREATE TABLE  ` anuncio ` ( ` id_anuncio `  int (  11  ...
  #1 (permalink)  
Antiguo 30/11/2004, 16:29
Avatar de Fociños  
Fecha de Ingreso: marzo-2004
Ubicación: A Coruña
Mensajes: 587
Antigüedad: 20 años, 1 mes
Puntos: 0
Referencias

Hola, tengo el siguiente código pero me da error, estoy utilizando MySQL 4.0.x
Código PHP:
CREATE TABLE `anuncio` (
`
id_anuncioint11 unsigned NOT NULL AUTO_INCREMENT ,
`
titularvarchar50 NOT NULL default '',
`
textotext NOT NULL ,
`
fecha_hora_publdatetime NOT NULL default '0000-00-00 00:00:00',
`
fecha_caducdate NOT NULL default '0000-00-00',
`
localidadvarchar20 NOT NULL default '',
`
importedecimal10NOT NULL default '0.00',
`
id_usuarioint11 unsigned NOT NULL default '0',
`
id_provinciatinyintunsigned NOT NULL default '0',
`
id_tipo_anunciosmallintunsigned NOT NULL default '0',
PRIMARY KEY ( `id_anuncio` ) ,
FOREIGN KEY `id_usuarioREFERENCES `usuario('id_usuario')ON UPDATE CASCADE ON DELETE CASCADE ,
FOREIGN KEY `id_provinciaREFERENCES `provincia(id_provincia)ON UPDATE CASCADE ON DELETE CASCADE ,
FOREIGN KEY `id_tipo_anuncioREFERENCES `tipo_anuncio(id_tipo_anuncio)ON UPDATE CASCADE ON DELETE CASCADE ,
UNIQUE KEY `titular texto id_usuario id_tipo_anuncio id_provincia` ( `titular` , `texto` ( ) , `id_usuario` , `id_provincia` , `id_tipo_anuncio` )
TYPE MYISAM AUTO_INCREMENT =34 
ySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES `usuario('id_usuario')`
ON UPDATE CASCADE

Gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 30/11/2004, 19:18
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
hola Fociños

el error te da por que estas creando en uan tabla tipo MYISAM, y estos tipos de tablas no soportan claves foraneas, tienes que usar las tablas tipo innoDB.

saludos!
  #3 (permalink)  
Antiguo 30/11/2004, 19:20
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
aqui tienes referencia sobre ese tipo de tabla
http://www.mysql-hispano.org/page.php?id=27&pag=1
  #4 (permalink)  
Antiguo 01/12/2004, 12:46
Avatar de Fociños  
Fecha de Ingreso: marzo-2004
Ubicación: A Coruña
Mensajes: 587
Antigüedad: 20 años, 1 mes
Puntos: 0
Muchas gracias, sois enormes :D
  #5 (permalink)  
Antiguo 02/12/2004, 17:58
Avatar de Fociños  
Fecha de Ingreso: marzo-2004
Ubicación: A Coruña
Mensajes: 587
Antigüedad: 20 años, 1 mes
Puntos: 0
He probado a poner lo de type innodb

CREATE TABLE `anuncio` (
`id_anuncio` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
`titular` varchar( 50 ) NOT NULL default '',
`texto` text NOT NULL ,
`fecha_hora_publ` datetime NOT NULL default '0000-00-00 00:00:00',
`fecha_caduc` date NOT NULL default '0000-00-00',
`localidad` varchar( 20 ) NOT NULL default '',
`importe` decimal( 10, 2 ) NOT NULL default '0.00',
`id_usuario` int( 11 ) unsigned NOT NULL default '0',
`id_provincia` tinyint( 3 ) unsigned NOT NULL default '0',
`id_tipo_anuncio` smallint( 5 ) unsigned NOT NULL default '0',
PRIMARY KEY ( `id_anuncio` ) ,
FOREIGN KEY `id_usuario` REFERENCES `usuario(id_usuario)` ON UPDATE CASCADE ON DELETE CASCADE ,
FOREIGN KEY `id_provincia` REFERENCES `provincia(id_provincia)` ON UPDATE CASCADE ON DELETE CASCADE ,
FOREIGN KEY `id_tipo_anuncio` REFERENCES `tipo_anuncio(id_tipo_anuncio)` ON UPDATE CASCADE ON DELETE CASCADE ,
UNIQUE KEY `titular texto id_usuario id_tipo_anuncio id_provincia` ( `titular` , `texto` ( 1 ) , `id_usuario` , `id_provincia` , `id_tipo_anuncio` )
) TYPE = innodb AUTO_INCREMENT =34

Pero me sigue dando el mismo error.
  #6 (permalink)  
Antiguo 02/12/2004, 19:11
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Fociños
aqui tienes una referencia de como crear FOREIGN KEY en Mysql
http://dev.mysql.com/doc/mysql/en/In...nstraints.html

Si te sigue dando el mismo error puede ser que tu version de Mysql no soporta, prueba instalando el mysql max (lo pudes descargar de la misma pagina de mysql), esto le añade caracteristicas especiales, proporciona un soporte completo para tablas tipo innoDB

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.