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

Fallo en mi codigo T_T (On delete cascade On update set null)

Estas en el tema de Fallo en mi codigo T_T (On delete cascade On update set null) en el foro de Mysql en Foros del Web. Buenas! ¿Alguien podría echarme una mano? A ver, tengo la siguiente estructura en las tablas, pero me gustaría meterle lo siguiente: * Al borrar un ...
  #1 (permalink)  
Antiguo 21/06/2014, 12:56
 
Fecha de Ingreso: junio-2014
Mensajes: 1
Antigüedad: 10 años, 5 meses
Puntos: 0
Fallo en mi codigo T_T (On delete cascade On update set null)

Buenas!
¿Alguien podría echarme una mano?

A ver, tengo la siguiente estructura en las tablas, pero me gustaría meterle lo siguiente:

* Al borrar un fotografo que se borre su dni de Fotografia, Utiliza y de SesionFotos.
* Al borrar una camara se queden sus datos guardados.
* No permitir cambios en la bd.

Código MySQL:
Ver original
  1. SET FOREIGN_KEY_CHECKS = 0;
  2.  
  3. CREATE DATABASE IF NOT EXISTS TFotografias
  4.   CHARACTER SET latin1 COLLATE latin1_swedish_ci;
  5. USE TFotografias;
  6. -- -------------------------------------
  7. -- Tables
  8.  
  9. DROP TABLE IF EXISTS TFotografias.Fotografo ;
  10. CREATE TABLE TFotografias.Fotografo (
  11.   dni INT(9) NOT NULL PRIMARY KEY,
  12.   nombre VARCHAR(50) NOT NULL,
  13.   sueldo INT (10) NOT NULL,
  14.   telefono INT (9) NOT NULL
  15.  
  16.  
  17. );
  18.  
  19.  
  20. DROP TABLE IF EXISTS TFotografias.Camara;
  21. CREATE TABLE TFotografias.Camara (
  22.  
  23.   nserie INT (9) NOT NULL PRIMARY KEY,
  24.   marca VARCHAR (20) NOT NULL,
  25.   modelo VARCHAR (20) NOT NULL,
  26.   precio INT (9) NOT NULL,
  27.   fecha_compra DATE
  28.  
  29. );
  30.  
  31.  
  32.  
  33. DROP TABLE IF EXISTS TFotografias.Fotografia;
  34. CREATE TABLE TFotografias.Fotografia (
  35.  
  36.  
  37.   dni INT(9) NOT NULL,
  38.   numero INT (9) NOT NULL,
  39.   ancho INT (9)NOT NULL,
  40.   alto INT (9)NOT NULL,
  41.   resolucion INT (9)NOT NULL,
  42.   tema VARCHAR (9) NOT NULL,
  43.   fecha DATE,
  44.   CONSTRAINT PRIMARY KEY (dni, numero)
  45.  
  46. );
  47.  
  48.  
  49.  
  50. DROP TABLE IF EXISTS TFotografias.Utiliza;
  51. CREATE TABLE TFotografias.Utiliza (
  52.  
  53.  dni INT(9) NOT NULL,
  54.  nserie INT (9) NOT NULL,
  55.  fecha DATE,
  56.  incidencia VARCHAR (9) NOT NULL,
  57.  CONSTRAINT PRIMARY KEY (dni, nserie, fecha)
  58.  
  59.  
  60. );
  61.  
  62. DROP TABLE IF EXISTS TFotografias.SesionFotos;
  63. CREATE TABLE TFotografias.SesionFotos (
  64.  
  65.  fecha DATE,
  66.  dni INT(9) NOT NULL,
  67.  lugar VARCHAR (9) NOT NULL,
  68.  importe INT (9) NOT NULL,  
  69.  
  70.  CONSTRAINT PRIMARY KEY (fecha, dni)
  71. );
  72.  
  73.  
  74.  
  75. SET FOREIGN_KEY_CHECKS = 1;


PD: Muchisimas gracias

Última edición por gnzsoloyo; 21/06/2014 a las 13:29 Razón: Sin etiquetar.
  #2 (permalink)  
Antiguo 23/06/2014, 01:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Fallo en mi codigo T_T (On delete cascade On update set null)

Debes definir las FOREIGN KEY recuerda que las tablas deben ser innoDB.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: cascade, delete, update
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 07:07.