Files
silk/server-go/migrations/000007_inspection_idempotency.up.sql
T
2026-08-14 09:03:48 +08:00

18 lines
658 B
SQL

-- 保留全部历史记录,只对同用户重复键追加记录 ID,避免迁移删除或丢失数据。
UPDATE inspection_records AS r
SET idempotency_key = r.idempotency_key || '#' || r.id
WHERE r.idempotency_key IS NOT NULL
AND EXISTS (
SELECT 1
FROM inspection_records AS x
WHERE x.user_id IS NOT DISTINCT FROM r.user_id
AND x.idempotency_key = r.idempotency_key
AND x.id <> r.id
);
DROP INDEX IF EXISTS idx_inspection_records_idempotency_key;
CREATE UNIQUE INDEX IF NOT EXISTS idx_inspection_records_user_idempotency
ON inspection_records (user_id, idempotency_key)
WHERE idempotency_key IS NOT NULL;