gpt4 book ai didi

mysql - 非主 Grails 的重复条目问题

转载 作者:行者123 更新时间:2023-11-29 23:36:23 24 4
gpt4 key购买 nike

决定添加一个小日志,主要记录代码、请求 IP 和日期戳。

这是域类

  class Requestlog {
String countryiso
Date requestdate
String requestaddr
static constraints = {
}
}

以及创建记录的代码

    def reqip = request.remoteAddr
def reqdate = new Date()
def reqrec = new Requestlog(countryiso: countryiso, requestaddr: reqip, requestdate: reqdate )
reqrec.save(flush:true,failOnError:true)

但是如果来自同一IP的相同代码被请求两次(在不同时间)

Duplicate entry 'GL' for key 'UK_3noxnln23h2w0wtormncmk2a1'. Stacktrace follows:
Message: Duplicate entry 'GL' for key 'UK_3noxnln23h2w0wtormncmk2a1'
Line | Method

问题是,我没有将任何列设置为唯一。查看数据库模式,除了 id 列自动递增之外,没有任何约束。

最佳答案

折腾了一段时间,发现了这个问题。

对键“UK_3noxnln23h2w0wtormncmk2a1”的引用是键(没有双关语)。这是一个索引,似乎是由 grails 或 mysql 在创建时自动生成的,因此当我尝试在数据库中使用相同代码创建一个新条目时,它会抛出一个异常,因为它要求只有一个条目与指数。

我通过 mysql 工作台编辑器进入并删除了它,我的应用程序开始工作(并且仍然有希望工作)

想知道是 mysql 还是 grails 设置了索引,以及是否有一些功能现在不起作用。对我来说,我只是写入这个表,从不读取,所以索引对我来说没有什么区别。

请注意,如果您在 datasource.config 上创建了索引,则每次启动应用程序时都必须删除索引(并且不要删除名为 ID 的索引,它是具有您想要的长名称的索引)。

关于mysql - 非主 Grails 的重复条目问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357521/

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