-- MijnBesluit - een bezorgd bericht uit je eigen lijst verwijderen -- -- Wie een bezorgd bericht "verwijdert" haalt het alleen bij zichzelf weg; de ander heeft er nog -- steeds recht op. Vandaar twee vlaggen in plaats van één verwijderdatum: de afzender en de -- ontvanger ruimen onafhankelijk van elkaar op. De rij zelf blijft altijd bestaan. -- -- Draaien met: -- mysql -u root -p mijnbesluit < db\20_bericht_verbergen.sql -- -- Opnieuw draaien mag: er gebeurt dan niets. (De uitroller draait alle scripts elke keer; een -- script dat alleen "ADD COLUMN" zegt, loopt de tweede keer vast en houdt de rest tegen.) USE `mijnbesluit`; -- ---------------------------------------------------------------- hidden_by_sender SET @bestaat := ( SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'messages' AND COLUMN_NAME = 'hidden_by_sender'); SET @sql := IF(@bestaat = 0, 'ALTER TABLE `messages` ADD COLUMN `hidden_by_sender` TINYINT(1) NOT NULL DEFAULT 0 AFTER `read_at`', 'SELECT "hidden_by_sender bestaat al" AS melding'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- ---------------------------------------------------------------- hidden_by_recipient SET @bestaat := ( SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'messages' AND COLUMN_NAME = 'hidden_by_recipient'); SET @sql := IF(@bestaat = 0, 'ALTER TABLE `messages` ADD COLUMN `hidden_by_recipient` TINYINT(1) NOT NULL DEFAULT 0 AFTER `hidden_by_sender`', 'SELECT "hidden_by_recipient bestaat al" AS melding'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SELECT 'Klaar. Een bezorgd bericht is vanaf nu uit je eigen lijst te verwijderen.' AS melding;