错误1055我已修复,但为什么它首先给出了错误?

时间:2018-08-31 18:32:14

标签: mysql mysql-workbench

我已将type Data struct { test string } // ... router.POST("/test", func(c *gin.Context) { var data Data c.BindJSON(&data) c.JSON(200, gin.H{ "test": data.test, }) }) 设置为唯一键,而不是null

username

但是在尝试发现人们登录的最流行的日子时,我遇到了错误。

CREATE TABLE IF NOT EXISTS `users`(
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `username` VARCHAR(255) NOT NULL,
    `created_at` TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_uname` (`username`)
);

“ users.username在功能上不依赖于group by子句中的列”

所以我搜索了stackoverflow,大多数人都说要禁用SELECT `username`, DAYNAME(`created_at`) AS `day` FROM `users` GROUP BY `day`; ,但是我不想禁用它,为什么我不能学习如何使用它呢?

要使代码正常工作,我必须添加ONLY_FULL_GROUP_BY用户名ANY_VALUE(

另一篇文章中的答案: “对于其他用例:在这种情况下,您不必不必禁用ONLY_FULL_GROUP_BY。根据mysql docs,“如果name不是t的主键或唯一的NOT NULL列,则此查询无效。在这种情况下,无法推断出功能依赖关系,并且会发生错误:“”

但是我不是把)作为唯一密钥吗?为什么会出错?

0 个答案:

没有答案