-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate_priority.sql
More file actions
65 lines (56 loc) · 2.53 KB
/
Copy pathupdate_priority.sql
File metadata and controls
65 lines (56 loc) · 2.53 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
63
64
65
-- 1. Add priority column if it doesn't exist
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'announcements' AND column_name = 'priority') THEN
ALTER TABLE announcements ADD COLUMN priority text DEFAULT 'Low';
END IF;
END $$;
-- 2. Add train_number column if it is missing
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'announcements' AND column_name = 'train_number') THEN
ALTER TABLE announcements ADD COLUMN train_number text;
END IF;
END $$;
-- 3. Add status column if it doesn't exist
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'announcements' AND column_name = 'status') THEN
ALTER TABLE announcements ADD COLUMN status text;
END IF;
END $$;
-- 4. Add type column if it doesn't exist
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'announcements' AND column_name = 'type') THEN
ALTER TABLE announcements ADD COLUMN type text;
END IF;
END $$;
-- 5. Add platform column if it doesn't exist
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'announcements' AND column_name = 'platform') THEN
ALTER TABLE announcements ADD COLUMN platform int;
END IF;
END $$;
-- 6. Update priority based on announcement characteristics
-- High priority: Delayed, Cancelled, Emergency announcements, or PWD-related
UPDATE announcements SET priority = 'High'
WHERE (status IN ('Delayed', 'Cancelled')
OR type = 'emergency'
OR "isPWD" = true)
AND priority IS NOT NULL;
-- Medium priority: Express trains, important arrivals/departures that are on time
UPDATE announcements SET priority = 'Medium'
WHERE COALESCE(priority, 'Low') = 'Low'
AND train_number IS NOT NULL
AND (train_number LIKE '%26%' OR train_number LIKE '%22%' OR train_number LIKE '%12%')
AND COALESCE(status, '') = 'On Time';
-- Specific updates for existing data (only if those records exist)
UPDATE announcements SET priority = 'Medium'
WHERE train_number = '12601' AND COALESCE(status, '') = 'On Time';
UPDATE announcements SET priority = 'High'
WHERE train_number = '22638'; -- This one is delayed
-- 7. Insert sample data with all columns (optional - comment out if not needed)
INSERT INTO announcements (name, train_number, platform, status, type, speech_recognized, "isPWD", time, priority)
VALUES ('Local Train', '06001', 2, 'On Time', 'departure', 'Local train to Tambaram leaving from platform 2', false, now(), 'Low');