sqlc icon indicating copy to clipboard operation
sqlc copied to clipboard

INSERT OR IGNORE INTO doesn't work, sqlite3

Open mattiasgrenfeldt opened this issue 3 years ago • 2 comments

Version

1.10.0

What happened?

I wanted to make a INSERT OR IGNORE INTO query against a sqlite3 db (https://sqlite.org/lang_insert.html). When running sqlc it thinks that it is a syntax error.

Relevant log output

# package db
sql/queries.sql:1:1: syntax error at or near "OR"

Database schema

CREATE TABLE IF NOT EXISTS items (
    id INTEGER PRIMARY KEY,
    name varchar(256) UNIQUE NOT NULL,
    unit varchar(256) NOT NULL
);

SQL queries

-- name: CreateItem :exec
INSERT OR IGNORE INTO items (name, unit) VALUES ($1, $2);

Configuration

version: "1"
packages:
  - path: "projectname/db"
    name: "db"
    schema: "sql/schema.sql"
    queries: "sql/queries.sql"

Playground URL

https://play.sqlc.dev/p/89430560ded19826e9822bb05d9107919f92760e28980b5bf461237a34dbc0ca

What operating system are you using?

Linux

What database engines are you using?

No response

What type of code are you generating?

Go

mattiasgrenfeldt avatar Nov 08 '21 20:11 mattiasgrenfeldt

current experimental sqlite3 support is ... not great. we need a better parser library. Please see #161

StevenACoffman avatar Nov 09 '21 03:11 StevenACoffman

@mattiasgrenfeldt This issue should be resolved by #1687

hakobera avatar Jun 26 '22 16:06 hakobera

@kyleconroy Shouldn't we close this issue?

abhijit-hota avatar Nov 05 '22 06:11 abhijit-hota