[英]mysql foreign key problem
這里的外鍵添加有什么問題:
mysql> create table notes (
id int (11) NOT NULL auto_increment PRIMARY KEY,
note_type_id smallint(5) NOT NULL,
data TEXT NOT NULL,
created_date datetime NOT NULL,
modified_date timestamp NOT NULL on update now())
Engine=InnoDB;
Query OK, 0 rows affected (0.08 sec)
mysql> create table notetypes (
id smallint (5) NOT NULL auto_increment PRIMARY KEY,
type varchar(255) NOT NULL UNIQUE)
Engine=InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> alter table `notes` add constraint
foreign key(`note_type_id`) references `notetypes`.`id`
on update cascade on delete restrict;
ERROR 1005 (HY000): Can't create table './admin/#sql-43e_b762.frm' (errno: 150)
謝謝
J.P
我認為FK需要命名。
嘗試
ALTER TABLE `test`.`notes` ADD CONSTRAINT `note_type_id` FOREIGN KEY `note_type_id` (`note_type_id`)
REFERENCES `notetypes` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE;
mysql> create table notes ( id int (11) NOT NULL auto_increment PRIMARY KEY, note_type_id smallint(5) NOT NULL, data TEXT NOT NULL, created_date datetime NOT NULL, modified_date timestamp NOT NULL on update now()) Engine=InnoDB;
Query OK, 0 rows affected (0.38 sec)
mysql> create table notetypes ( id smallint (5) NOT NULL auto_increment PRIMARY KEY, type varchar(255) NOT NULL UNIQUE) Engine=InnoDB;
Query OK, 0 rows affected (0.74 sec)
mysql> alter table `notes` add constraint foreign key(`note_type_id`) references notetypes (id) on update cascade on delete restrict;
Query OK, 0 rows affected (0.64 sec)
Records: 0 Duplicates: 0 Warnings: 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.