sakila/queries/actor.sql
siyahas 54e36528bc Add actor, film, and category APIs with SQL query support
- Generated SQL queries for actors, films, categories.
- Introduced HTTP handlers for actor, film, and category endpoints.
- Included utility functions for parsing query parameters and building URLs.
- Enabled pagination, filtering, and HAL representation for responses.
2025-09-02 16:12:30 +03:00

55 lines
1.3 KiB
SQL

-- name: ListActors :many
SELECT actor_id, first_name, last_name, last_update
FROM actor
ORDER BY actor_id ASC
LIMIT ? OFFSET ?;
-- name: CountActors :one
SELECT COUNT(*)
FROM actor;
-- name: GetActor :one
SELECT actor_id, first_name, last_name, last_update
FROM actor
WHERE actor_id = ?;
-- name: ListFilmsByActor :many
SELECT f.film_id,
f.title,
f.description,
f.release_year,
f.language_id,
f.original_language_id,
f.rental_duration,
f.rental_rate,
f.length,
f.replacement_cost,
f.rating,
f.special_features,
f.last_update
FROM film f
JOIN film_actor fa ON fa.film_id = f.film_id
WHERE fa.actor_id = ?
ORDER BY f.title ASC;
-- name: NextActorID :one
SELECT COALESCE(MAX(actor_id), 0) + 1 FROM actor;
-- name: InsertActor :exec
INSERT INTO actor (actor_id, first_name, last_name, last_update)
VALUES (?, ?, ?, CURRENT_TIMESTAMP);
-- name: UpdateActorPut :execrows
UPDATE actor
SET first_name = ?,
last_name = ?
WHERE actor_id = ?;
-- name: PatchActor :execrows
UPDATE actor
SET first_name = COALESCE(sqlc.narg(first_name), first_name),
last_name = COALESCE(sqlc.narg(last_name), last_name)
WHERE actor_id = sqlc.arg(actor_id);
-- name: DeleteActor :execrows
DELETE FROM actor WHERE actor_id = ?;