-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix_sequences.sql
More file actions
62 lines (51 loc) · 1.45 KB
/
fix_sequences.sql
File metadata and controls
62 lines (51 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
-- Fix PostgreSQL sequences for all tables
-- Запусти это после импорта данных или если получаешь duplicate key errors
-- === FIX INVITES SEQUENCE ===
SELECT setval(
pg_get_serial_sequence('invites', 'id'),
COALESCE((SELECT MAX(id) FROM invites), 0) + 1,
false
);
-- === FIX USERS SEQUENCE ===
SELECT setval(
pg_get_serial_sequence('users', 'id'),
COALESCE((SELECT MAX(id) FROM users), 0) + 1,
false
);
-- === FIX ROOMS SEQUENCE ===
SELECT setval(
pg_get_serial_sequence('rooms', 'id'),
COALESCE((SELECT MAX(id) FROM rooms), 0) + 1,
false
);
-- === FIX MESSAGES SEQUENCE ===
SELECT setval(
pg_get_serial_sequence('messages', 'id'),
COALESCE((SELECT MAX(id) FROM messages), 0) + 1,
false
);
-- === VERIFY ===
-- Проверь текущие значения sequences
SELECT
'invites' as table_name,
last_value as current_sequence_value,
(SELECT MAX(id) FROM invites) as max_table_id
FROM invites_id_seq
UNION ALL
SELECT
'users' as table_name,
last_value as current_sequence_value,
(SELECT MAX(id) FROM users) as max_table_id
FROM users_id_seq
UNION ALL
SELECT
'rooms' as table_name,
last_value as current_sequence_value,
(SELECT MAX(id) FROM rooms) as max_table_id
FROM rooms_id_seq
UNION ALL
SELECT
'messages' as table_name,
last_value as current_sequence_value,
(SELECT MAX(id) FROM messages) as max_table_id
FROM messages_id_seq;