31 lines
1.3 KiB
MySQL
31 lines
1.3 KiB
MySQL
|
|
-- Add user tracking columns to tickets table
|
||
|
|
ALTER TABLE tickets
|
||
|
|
ADD COLUMN IF NOT EXISTS created_by INT,
|
||
|
|
ADD COLUMN IF NOT EXISTS updated_by INT,
|
||
|
|
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMP NULL;
|
||
|
|
|
||
|
|
-- Add foreign key constraints if they don't exist
|
||
|
|
SET @fk_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||
|
|
WHERE CONSTRAINT_NAME = 'fk_tickets_created_by'
|
||
|
|
AND TABLE_NAME = 'tickets'
|
||
|
|
AND TABLE_SCHEMA = DATABASE());
|
||
|
|
|
||
|
|
SET @sql = IF(@fk_exists = 0,
|
||
|
|
'ALTER TABLE tickets ADD CONSTRAINT fk_tickets_created_by FOREIGN KEY (created_by) REFERENCES users(user_id) ON DELETE SET NULL',
|
||
|
|
'SELECT "Foreign key fk_tickets_created_by already exists"');
|
||
|
|
PREPARE stmt FROM @sql;
|
||
|
|
EXECUTE stmt;
|
||
|
|
DEALLOCATE PREPARE stmt;
|
||
|
|
|
||
|
|
SET @fk_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||
|
|
WHERE CONSTRAINT_NAME = 'fk_tickets_updated_by'
|
||
|
|
AND TABLE_NAME = 'tickets'
|
||
|
|
AND TABLE_SCHEMA = DATABASE());
|
||
|
|
|
||
|
|
SET @sql = IF(@fk_exists = 0,
|
||
|
|
'ALTER TABLE tickets ADD CONSTRAINT fk_tickets_updated_by FOREIGN KEY (updated_by) REFERENCES users(user_id) ON DELETE SET NULL',
|
||
|
|
'SELECT "Foreign key fk_tickets_updated_by already exists"');
|
||
|
|
PREPARE stmt FROM @sql;
|
||
|
|
EXECUTE stmt;
|
||
|
|
DEALLOCATE PREPARE stmt;
|