2011-02-14 17 views
6

tengo esto:MySQL: error 150 usando ON UPDATE SET NULL y ON DELETE SET NULL, ¿por qué?

DROP TABLE IF EXISTS `sf_guard_user`; 


CREATE TABLE `sf_guard_user` 
(
    `id` INTEGER(11) NOT NULL AUTO_INCREMENT, 
    `username` VARCHAR(128) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `sf_guard_user_U_1` (`username`) 
)Type=InnoDB; 


DROP TABLE IF EXISTS `shop_orders`; 

CREATE TABLE `shop_orders` 
(
    `orders_id` INTEGER(11) NOT NULL AUTO_INCREMENT, 
    `sfgu_id` INTEGER(11) NOT NULL, 

    PRIMARY KEY (`orders_id`), 
    INDEX `shop_orders_FI_1` (`sfgu_id`), 
    CONSTRAINT `shop_orders_FK_1` 
     FOREIGN KEY (`sfgu_id`) 
     REFERENCES `sf_guard_user` (`id`) 
     ON UPDATE SET NULL 
     ON DELETE SET NULL, 

)Type=InnoDB; 

y yo estoy recibiendo este error:

1005 - Can't create table 'prueba1.shop_orders' (errno: 150)

si no quito las líneas en NULL SET UPDATE y ON DELETE SET NULL.

¿Alguna idea de por qué?

Saludos

Javi

Respuesta

13

creo que es porque se haya declarado el campo NOT NULL

+0

Sí, es verdad que no puedo declarar 'sfgu_id' como NOT NULL. – ziiweb

+0

Uno de esos en los que cuando leí tu respuesta fue "¡Oh!". Gracias :) – LeonardChallis

Cuestiones relacionadas