gpt4 book ai didi

PHP MySQL 创建表 : Cannot add foreign key constraint 时出错

转载 作者:行者123 更新时间:2023-11-29 01:29:49 25 4
gpt4 key购买 nike

我正在尝试编写一个 PHP 脚本来在同一个数据库中创建 2 个表,它们应该通过 1(表类别)到多(表页面)关系链接。因此,'category' 表中的主键 'category_id' 应该是表 'page' 中的外键。

表 'category' 创建成功,没有问题:

$sql="CREATE TABLE category(
category_id SMALLINT NOT NULL AUTO_INCREMENT,
category VARCHAR(30) NOT NULL,
PRIMARY KEY (category_id),
UNIQUE (category)
)ENGINE=InnoDB DEFAULT CHARSET=utf8";

然后我尝试创建第二个表“page”:

$sql="CREATE TABLE page(
page_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
category_id SMALLINT UNSIGNED NOT NULL,
title VARCHAR(100) NOT NULL,
description TINYTEXT NOT NULL,
content LONGTEXT NOT NULL,
date_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (page_id),
FOREIGN KEY (category_id) REFERENCES category (category_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8";

我收到以下错误:

Error creating table: Cannot add foreign key constraint

你能告诉我我的代码有什么问题吗?非常感谢。

最佳答案

根据位于 http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html 的 MySql 手册:

Corresponding columns in the foreign key and the referenced key must have similar data types. 
The size and sign of integer types must be the same.

问题是您将外键指定为 UNSIGNED,而您的主键不是。确保您的外键与其父键的规范相匹配。

关于PHP MySQL 创建表 : Cannot add foreign key constraint 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19307714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com