2016-11-09 86 views
1
CREATE TABLE admin_user (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY 
); 

CREATE TABLE mappa (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
id_utente INT(11) NOT NULL, 
data_creazione timestamp NOT NULL default CURRENT_TIMESTAMP, 
foreign key(id_utente) references admin_user(id) on delete cascade on update no action 
); 

第二个表给我这个错误期间外键错误:
无法创建表dbmappa(错误:150“外键约束不正确”)的mysql:表生成

关键语法mysql引用有什么问题?

回答

0

admin_userid您分配UNSIGNED值&您参考表id_utente外键应分配UNSIGNED

试试这个:

CREATE TABLE mappa (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    id_utente INT(11) UNSIGNED NOT NULL, 
    data_creazione timestamp NOT NULL default CURRENT_TIMESTAMP, 
    FOREIGN KEY (id_utente) 
    REFERENCES admin_user(id) 
    ON UPDATE NO ACTION 
    ON DELETE CASCADE 
); 
0

您在admin_user表中具有INT(11)UNSIGNED类型,并且在引用链接中具有INT(11)。这不起作用。像MySQL documentation说:

The size and sign of integer types must be the same.

充分利用id_utente栏也无符号的。