【发布时间】:2015-04-16 05:26:01
【问题描述】:
我正在尝试使用 Python 在 Wamp 服务器上创建表。有两个表 - 人和消息。表消息有一个列 person_id,它应该是表 person 的外键。
创建表后,通过 PhpMyAdmin 查看消息表中没有外键。 SQL查询有问题吗?
人的创造:
@staticmethod
def createTablePerson():
return "CREATE TABLE IF NOT EXISTS person (" \
"id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," \
"name VARCHAR(100)," \
"surname VARCHAR(100)" \
");"
消息的创建:
@staticmethod
def createTableMessage():
return "CREATE TABLE IF NOT EXISTS message (" \
"id INT NOT NULL AUTO_INCREMENT PRIMARY KEY," \
"personID INT NOT NULL REFERENCES person (id)," \
"text VARCHAR(1000)" \
");"
【问题讨论】:
-
您能否检查一下您的表引擎,因为 MyISAM 表的外键未实现并被静默忽略,并且仅适用于 InnoDB 表。
-
MySQL 解析但忽略“内联引用规范”(如 SQL 标准中所定义),其中引用被定义为列规范的一部分。当指定为单独的 FOREIGN KEY 规范的一部分时,MySQL仅接受 REFERENCES 子句。
标签: python mysql phpmyadmin foreign-keys wamp