mysql - 错误1005(HY000): Can't create table './quotes/actions.frm' (errno: 150)

标签 mysql innodb mysql-workbench

当我要创建一个新表时

CREATE TABLE actions ( A_id int NOT NULL AUTO_INCREMENT,
    type ENUM('rate','report','submit','edit','delete') NOT NULL,
    Q_id int NOT NULL,
    U_id int NOT NULL,
    date DATE NOT NULL,
    time TIME NOT NULL,
    rate tinyint(1),
    PRIMARY KEY (A_id),
    CONSTRAINT fk_Question FOREIGN KEY (Q_id) REFERENCES questions(P_id));

显示此错误:

ERROR 1005 (HY000): Can't create table './quotes/actions.frm' (errno: 150) ----------
With reference to
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

InnoDB 目前不支持具有用户定义分区的表的外键。这包括父表和子表。

谁能解释一下上面几行。

我不明白为什么我会看到这个。

最佳答案

150 通常通过以不同的顺序创建表来修复。如果还不够(例如,循环 FK),请使用 ENABLE/DISABLE FOREIGN KEYS。

分区...确实如此。当前的 PARTITIONing 设计不允许任意的 UNIQUE KEYS 或 FOREIGN KEYS。这在(也许)5.8 之前不太可能改变。

关于mysql - 错误1005(HY000): Can't create table './quotes/actions.frm' (errno: 150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29769367/

相关文章:

mysql - 如何查询重复字符超过 2 个的单词?

jquery - 是否可以使用 jquery post 或 get 请求来保存访客统计信息?

python - MySQL:如果不重新打开 shell,Django .create 后跟 .get 将无法工作

mysql - 无法从 SQLWORKBENCH 连接到 AWS RDS mysql

mysql - 如何关闭MySQL工作台而不杀死正在运行的查询?

mysql - SQL IF SELECT query is null then do another query

mysql - 相同的执行路径、数据和原理图;不同的查询时间

java - 将 Java Web 应用程序从 MySQL 迁移到 ORACLE

mysql - Jetty 9 JNDI 设置 - 未找到类 : org. eclipse.jetty.plus.jndi.Resource

python - 从 Python 缓慢插入 MySQL