【问题标题】:no foreign key in table if engine is MyISAM如果引擎是 MyISAM,表中没有外键
【发布时间】:2013-02-16 23:47:58
【问题描述】:

为什么我不能在我的支付表中创建外键。

crate table students(
text char(5)NOT NULL,
id int(11)NOT NULL AUTO_INCREMENT,
name varchar(250),
level varchar(250),
PRIMARY KEY (text,id)
)ENGINE=MyISAM;

oder 表是

 crate table payments(
    p_id int(11)NOT NULL AUTO_INCREMENT,
    amount varchar(250),
    id int
    PRIMARY KEY (p_id)
FOREIGN KEY (id) REFERENCES students(id)
    )ENGINE=MyISAM;

【问题讨论】:

  • 切换到 InnoDB 引擎。投票结束,因为通过搜索可以轻松获得此信息..首先进行了搜索,对吗?
  • 因为 MyISAM 不支持外键。查看stackoverflow.com/questions/10769732/…
  • 另外仅供参考,你有一个错字 - CRATE 而不是 CREATE
  • 我无法将学生表更改为 InnoDB,因为它有两个主键

标签: php mysql phpmyadmin


【解决方案1】:

因为 MyISAM 不支持外键。 FK 声明被解析,否则被忽略。您需要使用 InnoDB 表来获得真正的 FK 支持。

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 2012-10-09
    • 2012-10-02
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多