gpt4 book ai didi

php - 允许表中重复

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

我对数据库、数据库架构和 MySQL 总体来说比较陌生,所以如果我的方法不是最佳的,请原谅我。我创建了一个名为 comments 的表,我想将用户 id 存储到 post_id 列中,该列可以正常工作。该表的唯一目的是存储在任何给定用户个人资料上发布的消息以及一些其他相关信息。

但是我想允许重复条目,以便我可以读取comments表并查找特定用户id,然后获取comments列> 来自 comments 表,并将其显示在 id 匹配的用户个人资料上。

我会通过对 commentsuser_info(特别是来自的 post_id)执行 INNER JOIN 来做到这一点来自 user_infocommentsid

当从用户个人资料将信息发布到数据库时,我收到以下错误

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '59' for key 'post_id' 

用户信息

'user_info', 'CREATE TABLE `user_info` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `username` varchar(12) COLLATE utf8_unicode_ci NOT NULL,\n  `pass` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,\n  `joined` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `username` (`username`)\n) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'

评论

'comments', 'CREATE TABLE `comments` (\n  `post_id` int(11) DEFAULT NULL,\n  `comment` text COLLATE utf8_unicode_ci,\n  `date_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\n  UNIQUE KEY `post_id` (`post_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'

如果我遗漏了任何可能有助于您回答问题的内容,请告诉我。

最佳答案

您需要删除 post_id 上的唯一索引:

ALTER TABLE `comments` DROP INDEX post_id;

然后您可以根据需要创建非唯一索引:

ALTER TABLE `comments` ADD INDEX `post_id` (`post_id`);

此外,您的comments 表缺少主键。创建一个自动递增整数列:comment_id,用于标识记录。

关于php - 允许表中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460694/

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