【发布时间】:2021-12-08 22:35:55
【问题描述】:
我正在使用带有 Gorm 的 SQLITE 数据库,需要保存一条新记录。
我遇到的问题是,当我创建一条记录并重新启动程序时,在数据库中找不到该记录。创建后需要保存记录吗?
【问题讨论】:
-
“我必须在创建记录后保存它才能使用 Gorm 将其保存在 SQLITE 中吗?” -- 不。您要么没有成功创建记录(您是否在创建后检查了错误?),或者您没有创建您认为的内容,因此您正在尝试检索其他内容。或者您正在使用没有提交的手动事务。或许,如果您需要更具体的帮助,请考虑分享不适合您的代码。
-
@mkopriva 我确实检查了创建操作的错误,但没有。我没有指定我不使用手动交易。我不做任何交易。我认为 gorm 或 sqlite 会处理它。如何确保我的记录保存在数据库中?我看到保存了其他表的一些记录。我将做一个最小的例子来重现问题并提供我的问题。
-
我已经在我的机器上测试了普通的
First调用,如果没有找到则Create。运行程序一次,Create被调用。第二次运行程序,First成功,Create被 not 调用了。因此,在默认设置中,Create可以正常工作。如果你设法创建了一个minimal reproducible example,我会看看它。 -
@mkopriva 非常感谢您的帮助。这证明我的假设是正确的。所以我的代码中一定有一个错误。如果你提供这个作为答案,我会验证它。