[英]can't create table `info` (foreign key constraint is incorrectly formated
我正在使用navicat
軟件。
我創建了users
表。
我的專欄:
id - fname
id
是primary
並auto increment
。
現在,我想創建info
表:
CREATE TABLE `info` (
`user_id` int NOT NULL ,
`fname` varchar(255) NULL ,
PRIMARY KEY (`user_id`),
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
)
;
但我得到這個錯誤:
can't create table `info` (foreign key constraint is incorrectly formated)
我的用戶表sql:
CREATE TABLE `users` (
`id` int(10) UNSIGNED NOT NULL,
`username` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
您的SQL腳本有兩個錯誤。
1)在創建USERS
表時,請為id
字段創建索引。 如果未創建索引,則不會在另一個表中為其創建外鍵。
CREATE TABLE `users` (
`id` int(10) UNSIGNED NOT NULL,
`username` varchar(255) DEFAULT NULL,
INDEX `id_index` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2)在創建info
表時, user_id
字段應具有與users.id
字段相同的數據類型int(10) UNSIGNED
。
CREATE TABLE `info` (
`user_id` int(10) UNSIGNED NOT NULL,
`fname` varchar(255) NULL ,
PRIMARY KEY (`user_id`),
INDEX `fk_INFO_idx` (`user_id`),
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
在此語句中,請嘗試刪除“用戶”上的引號,因為它是表名,
*外鍵( user_id
)參考** users**
( id
)刪除級聯*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.