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
);
第二张表给出了这个错误:
无法创建表db
。mappa
(错误:150"外键约束形成错误")
关键语法mysql引用有什么问题?
答案 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
);