Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Xedrox en 14 Agosto 2011, 01:36 am



Título: NO ACTION FOREING KEY, URGENTE!
Publicado por: Xedrox en 14 Agosto 2011, 01:36 am
Buenas gente, supongase que tengo las siguientes tablas

Código:

create table usuarios
(
        nombre varchar(30) PRIMARY KEY
)

create table ingresos
(
       fecha smalldatetime,
       nombre varchar(30) FOREIGN KEY REFERENCES usuarios(nombre)
)

Lo que quisiera hacer es eliminar un registro de la tabla usuarios no me deja porque existen registros en la tabla nombre con esa referencia, habria alguna forma de quitar esta restriccion para que queden almacenados datos históricos en la tabla ingresos?

Gracias y Saludos


Título: Re: NO ACTION FOREING KEY, URGENTE!
Publicado por: Novlucker en 14 Agosto 2011, 01:46 am
Código
  1. CREATE TABLE ingresos
  2. (
  3.       fecha smalldatetime,
  4.       nombre VARCHAR(30) FOREIGN KEY REFERENCES usuarios(nombre) ON DELETE SET NULL
  5. )

;D

Saludos


Título: Re: NO ACTION FOREING KEY, URGENTE!
Publicado por: Xedrox en 14 Agosto 2011, 03:04 am
mmm pero no me sirve de mucho, me queda el valor "NULL" y yo queria que me quede el nombre del usuario registrado, por mas que no exista en la tabla de usuarios


Título: Re: NO ACTION FOREING KEY, URGENTE!
Publicado por: Novlucker en 14 Agosto 2011, 03:14 am
Pero es que eso sencillamente no se puede, si es FOREIGN es necesario, de lo contrario no sería FOREIGN, por lo que tu alternativa "funcional" sería el quitar la referencia.

Saludos


Título: Re: NO ACTION FOREING KEY, URGENTE!
Publicado por: Xedrox en 14 Agosto 2011, 03:22 am
Ok, gracias igual