簡體   English   中英

無法創建表`info`(外鍵約束的格式錯誤

[英]can't create table `info` (foreign key constraint is incorrectly formated

我正在使用navicat軟件。

我創建了users表。

我的專欄:

id  - fname

idprimaryauto 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM