Я хочу создать триггер (вставка / обновление), который проверяет, являются ли все значения столбца (кроме значений в первичном ключе) в записи нулевыми. Количество столбцов может меняться, поэтому я sh на 'l oop' будет иметь имена столбцов, а не жесткое кодирование столбцов в триггере. Ниже очень упрощенный пример моей схемы базы данных
CREATE TABLE `specs` (
`id` int(11) NOT NULL,
`spec1` enum('yes','no') DEFAULT NULL,
`spec2` enum('yes','no') DEFAULT NULL,
`spec3` enum('yes','no') DEFAULT NULL,
`spec4` enum('yes','no') DEFAULT NULL,
`spec5` enum('yes','no') DEFAULT NULL,
/* ... can be any number of columns */
`rowEmpty` enum('yes','no') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into specs (`id`,`spec1`,`spec2`,`spec3`,`spec4`,`spec5`)
VALUES (1,null,'yes',null,null,null),(2,null,null,'no',null,null),(3,'yes','no',null,null,null),(4,null,null,null,null,null),(5,null,'yes',null,'yes','yes'),(6,null,null,null,'no',null),(7,null,null,null,null,null);
Update specs set `spec1` = 'yes' where id = 7
Для триггеров вставки и обновления для столбца rowEmpty должно быть установлено значение 'yes' для идентификатора записи 4. Для всех других записей rowEmpty должно быть 'no'.
Как сделать il oop для всех имен столбцов в триггере без жесткого их кодирования?