Changed upsert to INSERT ON CONFLICT DO NOTHING so existing prices are never overwritten. Added unique index on (time_dk, price_area) to enforce no duplicate quarter-hour entries per area. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
14 lines
559 B
SQL
14 lines
559 B
SQL
-- :name insert-price! :! :n
|
|
-- :doc Insert a day-ahead price record, skip if already exists
|
|
INSERT INTO day_ahead_prices (time_utc, time_dk, price_area, price_dkk, price_eur)
|
|
VALUES (:time-utc, :time-dk, :price-area, :price-dkk, :price-eur)
|
|
ON CONFLICT (time_utc, price_area) DO NOTHING;
|
|
|
|
-- :name get-prices-for-date :? :*
|
|
-- :doc Get all prices for a given date (time_dk local date) and price area
|
|
SELECT time_utc, time_dk, price_area, price_dkk, price_eur
|
|
FROM day_ahead_prices
|
|
WHERE time_dk::date = :date
|
|
AND price_area = :price-area
|
|
ORDER BY time_dk;
|