Tôi muốn tạo tham chiếu đến bảng nước ngoài. nhưng tôi nhận được lỗi sau:Không thể phân giải tên bảng gần
truy vấn:
CREATE TABLE category_ids (id INT, post_id INT,
INDEX par_ind (post_id),
FOREIGN KEY (post_id) REFERENCES post(id)
ON DELETE CASCADE
) ENGINE=INNODB;
HIỂN THỊ ENGINE InnoDB TÌNH TRẠNG \ G:
------------------------
LATEST FOREIGN KEY ERROR
------------------------
2013-08-23 00:11:06 7f6f49e7b700 Error in foreign key constraint of table fun/category_ids:
FOREIGN KEY (post_id) REFERENCES post(id)
ON DELETE CASCADE
) ENGINE=INNODB:
Cannot resolve table name close to:
(id)
ON DELETE CASCADE
) ENGINE=INNODB
cấu trúc
viết bảng
mysql> describe post;
+-------------+-----------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
...
+-------------+-----------------------+------+-----+---------------------+----------------+
22 rows in set (0.00 sec)
Có thể nó cho rằng "post" là một từ dành riêng, nếu bạn đủ điều kiện đăng bài trong khóa ngoại của bạn với các dấu tích sau (tức là \ 'post \ '(id)). –
Bạn có cách nào để kiểm tra xem bảng của mình có đang sử dụng INNODB đúng cách và không phải cái gì khác không? (Ngay cả khi bạn đã viết rõ ràng, có) – Sugar
Bạn có thể sử dụng 'SHOW CREATE TABLE' để kiểm tra công cụ được sử dụng cho bảng được tham chiếu. – deltab