Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 02-05-2006
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 23
salvica Va por buen camino
Ante todo, gracias por responder delphi.com.ar

Eso es lo que pone en mysql.com, pero como digo en el hilo, necesito introducir más datos y ese ejemplo solo vale para uno , de todas formas lo estoy resolviendo contando las posiciones de los padres y metiendolos "a pelo" desde un fichero de texto (no sé si dirá algo el "profe" ).

Otra cosa (que viene a ser lo mismo)
Cuando creo trés o más tablas relacionadas entre sí ¿no deben llevar TODAS ellas las claves foráneas de sus padres? ¿O solo la de su inmediato?

Por ejemplo: tres tablas:
- Distribuidores (el abuelo de todas)
- Artículos (depende de distribuidores)
- Productos (depende de artículos y de distribuidores)
Código Delphi [-]

CREATE TABLE IF NOT EXISTS `distribuidores` (
       `id_empresa`     INT            NOT NULL AUTO_INCREMENT,
       `cif_empresa`    CHAR(11)       NOT NULL,
       `nombre`         VARCHAR(50)    NOT NULL DEFAULT "",
       `direccion`      VARCHAR(80)    NOT NULL DEFAULT "",
       `localidad`      VARCHAR(80)    NOT NULL DEFAULT "",
       `provincia`      VARCHAR(30)    NOT NULL DEFAULT "",
       `telefono`       INT(10)        ZEROFILL UNSIGNED NOT NULL DEFAULT 0,
       `tipo_articulo`  VARCHAR(80)    NOT NULL DEFAULT "",
       `tiempo_demora`  INT(3)         UNSIGNED NOT NULL DEFAULT 0,
       PRIMARY KEY (`id_empresa`)
) 
ENGINE=InnoDB;


CREATE TABLE IF NOT EXISTS `articulos` (
       `id_articulo`    INT            NOT NULL AUTO_INCREMENT,
       `id_empresa`     INT            NOT NULL,
       `nombre`         VARCHAR(50)    NOT NULL DEFAULT "",
       PRIMARY KEY (`id_articulo`), 
             INDEX (`id_empresa`),
       FOREIGN KEY (`id_empresa`) REFERENCES `distribuidores` (`id_empresa`) 
       ON DELETE CASCADE
       ON UPDATE CASCADE
) 
ENGINE=InnoDB;


CREATE TABLE IF NOT EXISTS `productos` (
       `id_producto`    INT            NOT NULL AUTO_INCREMENT,
       `id_articulo`    INT            NOT NULL,
       `id_empresa`     INT            NOT NULL,
       `nombre`         VARCHAR(50)    NOT NULL DEFAULT "",
       `precio`         FLOAT           NOT NULL DEFAULT 0.0,
       PRIMARY KEY (`id_producto`), 
             INDEX (`id_empresa`, `id_articulo`),
       FOREIGN KEY (`id_articulo`) REFERENCES `articulos`      (`id_articulo`) 
       FOREIGN KEY (`id_empresa`)  REFERENCES `distribuidores` (`id_empresa`) 
       ON DELETE CASCADE
       ON UPDATE CASCADE
) 
ENGINE=InnoDB;
En el ejemplo, la tercera tabla (productos) me dice que no puede crearla
¿Puedes indicarme como se hace? (en teoría o en práctica, como quieras)

Saludos y gracias de nuevo
Salvica

Última edición por salvica fecha: 02-05-2006 a las 15:19:02.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
insert into tabla values (select *... ¿? jorgesl SQL 15 11-04-2006 21:29:08
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Insert me cierra otro Insert motrildelphi Conexión con bases de datos 0 05-05-2005 12:20:27
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24


La franja horaria es GMT +2. Ahora son las 23:52:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi