Initial commit using sqlc for query generation.
Basic crud ops and join queries to use sqlc, more complex either from scratch or with a query builder later.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
-- name: GetUser :one
|
||||
SELECT * FROM users
|
||||
WHERE id = $1 LIMIT 1;
|
||||
|
||||
-- name: ListUsers :many
|
||||
SELECT * FROM users
|
||||
ORDER BY name;
|
||||
|
||||
-- name: CreateUser :one
|
||||
INSERT INTO users (
|
||||
name, age
|
||||
) VALUES (
|
||||
$1, $2
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateUser :exec
|
||||
UPDATE users
|
||||
set name = $2,
|
||||
age = $3
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users
|
||||
WHERE id = $1;
|
||||
@@ -0,0 +1,6 @@
|
||||
CREATE TABLE users (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name text NOT NULL,
|
||||
age int NOT NULL
|
||||
);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
version: "2"
|
||||
sql:
|
||||
- engine: "postgresql"
|
||||
queries: "sql/queries.sql"
|
||||
schema: "sql/schema.sql"
|
||||
gen:
|
||||
go:
|
||||
# 'db' is a standard package name for database logic
|
||||
package: "db"
|
||||
out: "internal/db"
|
||||
sql_package: "pgx/v5"
|
||||
# Recommended for better Go code:
|
||||
emit_json_tags: true
|
||||
emit_interface: true
|
||||
emit_exact_table_names: false
|
||||
Reference in New Issue
Block a user