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

Cambiar clave foránea NOT NULL

Estas en el tema de Cambiar clave foránea NOT NULL en el foro de Mysql en Foros del Web. Tengo la siguiente tabla "users" en mi base de datos: ** Lo siguiente es un resumen, ya que he borrado algunos campos que no vienen ...
  #1 (permalink)  
Antiguo 29/03/2015, 22:18
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 4 meses
Puntos: 6
Cambiar clave foránea NOT NULL

Tengo la siguiente tabla "users" en mi base de datos:
** Lo siguiente es un resumen, ya que he borrado algunos campos que no vienen al caso (no son claves foráneas, solo datos personales de cada usuario):
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `users` (
  2.   `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  3.   `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
  4.   `acceso` smallint(6) NOT NULL DEFAULT '0',
  5.   `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  6.   `full_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  7.   `sexo` enum('femenino','masculino') COLLATE utf8_unicode_ci NOT NULL,
  8.   `pais_id` int(10) unsigned NOT NULL,
  9.   `direccion` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  10.   `first_package_id` int(10) unsigned NOT NULL,
  11.   `promoter_id` int(10) unsigned NOT NULL,
  12.   `upline_id` int(10) unsigned NOT NULL,
  13.   `side_upline` enum('left','right') COLLATE utf8_unicode_ci NOT NULL,
  14.   `side_referrals` enum('left','right','less') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'left',
  15.   PRIMARY KEY (`id`),
  16.   UNIQUE KEY `users_username_unique` (`username`),
  17.   KEY `users_pais_id_foreign` (`pais_id`),
  18.   KEY `users_first_package_id_foreign` (`first_package_id`),
  19.   KEY `users_promoter_id_foreign` (`promoter_id`),
  20.   KEY `users_upline_id_foreign` (`upline_id`)
  21. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
  22.  
  23. --
  24. -- Filtros para la tabla `users`
  25. --
  26. ALTER TABLE `users`
  27.   ADD CONSTRAINT `users_first_package_id_foreign` FOREIGN KEY (`first_package_id`) REFERENCES `packages` (`id`),
  28.   ADD CONSTRAINT `users_pais_id_foreign` FOREIGN KEY (`pais_id`) REFERENCES `paises` (`id`),
  29.   ADD CONSTRAINT `users_promoter_id_foreign` FOREIGN KEY (`promoter_id`) REFERENCES `users` (`id`),
  30.   ADD CONSTRAINT `users_upline_id_foreign` FOREIGN KEY (`upline_id`) REFERENCES `users` (`id`);

Esta tabla ya contiene una serie de datos, aproximadamente 100 registros en un pequeño sistema que hice y que se encuentra funcionando.
Lo que quiero hacer es que "promoter_id" que es una clave foránea NOT NULL admita ahora valores nulos.

EDIT:
Luego de buscar, conseguí hacerlo de esta forma:
Código MySQL:
Ver original
  1. ALTER TABLE users MODIFY promoter_id INT(10) UNSIGNED;
Me base en este enlace: http://stackoverflow.com/questions/1...key-constraint
  #2 (permalink)  
Antiguo 30/03/2015, 08:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Cambiar clave foránea NOT NULL

FELICIDADES........y cual es la duda o ya quedo resuelto???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, clave, null, registro, tabla
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:20.