Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/09/2015, 13:07
darkill
 
Fecha de Ingreso: septiembre-2015
Mensajes: 9
Antigüedad: 8 años, 7 meses
Puntos: 0
Prolema con mysql foreign key

Hola buenas tardes soy estudiante de analista de sistema y comenze a cursar la materia bases de datos me dieron un trabajo pratico el cual es crear una base de datos con las siguientes tablas
PERSONA (DNI, nombre, apellido, domicilio)
AUTO (patente, marca, modelo, anio)
ACCIDENTE (idacc, fecha, descripción, montodanio)
PROPIETARIO (DNI, patente, fchcompra, fchventa)
AUXACC (patente, idacc,conductor)
yo creo las tablas y coloco las foreign key

Código SQL:
Ver original
  1. CREATE TABLE `persona` (
  2.   `dni` VARCHAR(20) NOT NULL,
  3.   `nombre` VARCHAR(50) DEFAULT NULL,
  4.   `apellido` VARCHAR(50) DEFAULT NULL,
  5.   `domicilio` VARCHAR(100) DEFAULT NULL,
  6.   PRIMARY KEY (`dni`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;[/PHP]
  8.  
  9. [PHP]CREATE TABLE `propietario` (
  10.   `dni` VARCHAR(20) NOT NULL,
  11.   `patente` VARCHAR(20) NOT NULL,
  12.   `fcompra` DATE DEFAULT '0000-00-00',
  13.   `fventa` DATE DEFAULT '0000-00-00',
  14.   KEY `dni` (`dni`),
  15.   KEY `patente` (`patente`),
  16.   CONSTRAINT `propietario_fk1` FOREIGN KEY (`dni`) REFERENCES `persona` (`dni`) ON DELETE CASCADE ON UPDATE CASCADE,
  17.   CONSTRAINT `propietario_fk2` FOREIGN KEY (`patente`) REFERENCES `auto` (`patente`) ON DELETE CASCADE ON UPDATE CASCADE
  18. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;

Código SQL:
Ver original
  1. CREATE TABLE `auto` (
  2.   `patente` VARCHAR(20) NOT NULL,
  3.   `modelo` VARCHAR(50) DEFAULT NULL,
  4.   `marca` VARCHAR(50) DEFAULT NULL,
  5.   `anio` VARCHAR(20) DEFAULT NULL,
  6.   PRIMARY KEY (`patente`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;

Código SQL:
Ver original
  1. CREATE TABLE `auxacc` (
  2.   `patente` VARCHAR(20) NOT NULL,
  3.   `idacc` INT(11) NOT NULL AUTO_INCREMENT,
  4.   `conductor` VARCHAR(50) DEFAULT NULL,
  5.   PRIMARY KEY (`idacc`),
  6.   UNIQUE KEY `auxacc_idx1` (`conductor`) USING BTREE,
  7.   KEY `patente` (`patente`),
  8.   CONSTRAINT `auxacc_fk1` FOREIGN KEY (`patente`) REFERENCES `auto` (`patente`) ON DELETE CASCADE ON UPDATE CASCADE,
  9.   CONSTRAINT `auxacc_fk2` FOREIGN KEY (`idacc`) REFERENCES `accidente` (`idacc`) ON DELETE CASCADE ON UPDATE CASCADE
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;

Código SQL:
Ver original
  1. CREATE TABLE `accidente` (
  2.   `idacc` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `fecha` datetime DEFAULT NULL,
  4.   `descripcion` VARCHAR(100) DEFAULT NULL,
  5.   `montodanio` VARCHAR(20) DEFAULT NULL,
  6.   PRIMARY KEY (`idacc`)
  7. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 PACK_KEYS=0;


hasta este punto voy bien cargo datos a las tablas de persona y auto, cuando quiero consultar en la tabla propietario por ejemplo el dni me salta vacio, deberia de mostrarme los dni de las personas que viajan a esta tabla. La verdad nose si en el codigo hice algo mal o no si me pudieran ayudar gracias

pd: las partes que me salen de PACK_KEYS=0 me lo agrega solo el mysql.
utilizo el sql manager

desde ya muchas gracias

Última edición por gnzsoloyo; 28/09/2015 a las 13:11 Razón: MUY mal qetiquetado. Usar hilgight "SQL", por favor.