一尘不染

无法解析接近的表名

sql

我想创建对外部表的引用。但我收到以下错误:

询问:

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;

显示引擎INNODB STATUS \ 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

帖子表结构

    mysql> describe post;
    +-------------+-----------------------+------+-----+---------------------+----------------+
    | Field       | Type                  | Null | Key | Default             | Extra          |
    +-------------+-----------------------+------+-----+---------------------+----------------+
    | id          | int(11)               | NO   | PRI | NULL                | auto_increment |
...
    +-------------+-----------------------+------+-----+---------------------+----------------+
    22 rows in set (0.00 sec)

阅读 147

收藏
2021-03-10

共1个答案

一尘不染

只有InnoDB支持外键,而MyISAM不支持。即使可以,您也无法在不同类型的表之间创建关系。

因此,您需要将表post转换为InnoDB。ALTER TABLE post ENGINE = InnoDB;

2021-03-10