mysql:表生成期间的外键错误

时间:2016-11-09 16:35:15

标签: mysql

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引用有什么问题?

2 个答案:

答案 0 :(得分:0)

您在admin_user表中有一个INT(11)UNSIGNED类型,在referrer中有一个INT(11)。这不起作用。就像MySQL documentation说:

  

整数类型的大小和符号必须相同。

id_utente列设为UNSIGNED。

答案 1 :(得分:0)

admin_user表格id已分配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
);