36 lines
1.3 KiB
SQL
36 lines
1.3 KiB
SQL
-- Create ID sequences table for tracking next ID values
|
|
CREATE TABLE IF NOT EXISTS id_sequences (
|
|
entity_type VARCHAR(32) PRIMARY KEY,
|
|
next_value BIGINT NOT NULL DEFAULT 1,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Initialize sequences from existing data (MAX(id) + 1)
|
|
INSERT IGNORE INTO id_sequences (entity_type, next_value)
|
|
SELECT 'customer', COALESCE(MAX(id), 0) + 1 FROM customers
|
|
UNION ALL
|
|
SELECT 'project', COALESCE(MAX(id), 0) + 1 FROM projects
|
|
UNION ALL
|
|
SELECT 'location', COALESCE(MAX(id), 0) + 1 FROM locations
|
|
UNION ALL
|
|
SELECT 'lot', COALESCE(MAX(id), 0) + 1 FROM lots
|
|
UNION ALL
|
|
SELECT 'machine', 1
|
|
UNION ALL
|
|
SELECT 'part', 1
|
|
UNION ALL
|
|
SELECT 'installation', COALESCE(MAX(id), 0) + 1 FROM installations
|
|
UNION ALL
|
|
SELECT 'log_bundle', COALESCE(MAX(id), 0) + 1 FROM log_bundles
|
|
UNION ALL
|
|
SELECT 'observation', COALESCE(MAX(id), 0) + 1 FROM observations
|
|
UNION ALL
|
|
SELECT 'timeline_event', COALESCE(MAX(id), 0) + 1 FROM timeline_events
|
|
UNION ALL
|
|
SELECT 'ticket', COALESCE(MAX(id), 0) + 1 FROM tickets
|
|
UNION ALL
|
|
SELECT 'ticket_link', COALESCE(MAX(id), 0) + 1 FROM ticket_links
|
|
UNION ALL
|
|
SELECT 'failure_event', COALESCE(MAX(id), 0) + 1 FROM failure_events;
|