[ent/SQLite3] insert nodes to table "users": near "RETURNING": syntax error

Table of Contents

Problem

If you use ent with sqlite3 driver in your Golang project, you may encounter the following error when you try to insert a new record to the table.

insert nodes to table "users": near "RETURNING": syntax error

Analysis

The error message indicates that the sqlite3 driver does not support the RETURNING clause.

If you are using Golang sqlite3 package github.com/mattn/go-sqlite3 in your project. The issue may be caused by the version of the package.

In the go.mod file, check the version of the package. If it is v2.0+, you are likely to encounter the same problem.

1go 1.20
2
3require (
4	entgo.io/ent v0.12.3
5	github.com/mattn/go-sqlite3 v2.0.1+incompatible
6)

If your package version is also v2.0+, you may encounter the same issue.

Solution

To resolve the issue, downgrade the go-sqlite3 package to v1.14+. For example, use version v1.14.11 in your project. Execute the following command in the directory containing your go.mod file:

go get github.com/mattn/go-sqlite3@v1.14.11

Don’t worry about using an older version, as the latest stable version released by the author is v1.14.16 as of October 2022. Therefore, it is safe to use version v1.14.11 or later.


If this post helped you to solve a problem or provided you with new insights, please upvote it and share your experience in the comments below. Your comments can help others who may be facing similar challenges. Thank you!
Buy Me A Coffee
DigitalOcean Referral Badge
Sign up to get $200, 60-day account credit !