14 lines
390 B
SQL
14 lines
390 B
SQL
ALTER TABLE message ADD COLUMN IF NOT EXISTS seq BIGINT NOT NULL DEFAULT 0;
|
|
|
|
WITH ranked AS (
|
|
SELECT id, ROW_NUMBER() OVER (PARTITION BY channel_id ORDER BY created_at ASC, id ASC) AS rn
|
|
FROM message
|
|
WHERE seq = 0
|
|
)
|
|
UPDATE message m
|
|
SET seq = ranked.rn
|
|
FROM ranked
|
|
WHERE m.id = ranked.id;
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_message_channel_seq ON message (channel_id, seq);
|