È possibile eseguire il ciclo di tutti i nomi di colonna all'interno di un trigger?loop in colonne nel trigger mysql
Scenario: Per registrare tutte le colonne di una tabella che sono state modificate. Se alcuni valori non sono cambiati, non registrare quelli.
DROP TRIGGER IF EXISTS t_before_update_test;
DELIMITER $$
CREATE TRIGGER t_before_update_test
BEFORE UPDATE ON test
FOR EACH ROW
BEGIN
-- Loop here for all columns, not just col1
IF OLD.col1 <> NEW.col1 THEN
INSERT INTO change_logs(
log_on, user_id,
table_name, colum_name,
old_data, new_data
) VALUES (
UNIX_TIMESTAMP(NOW()), '0',
'test', 'col1',
OLD.col1, NEW.col1
);
END IF;
-- process looping all columns
-- col1, col2, ... should be dynamic per loop
END $$
Questo è un esempio di copia funzionante, dove ora ho bisogno di scorrere tutte le colonne disponibili in OLD o NEW.
link solo le risposte sono disapprovate su Stack Overflow. Sarebbe meglio includere i punti pertinenti in questo post nel caso in cui i link diventino non validi. –
Inoltre non è chiaro come utilizzare la soluzione in questi collegamenti all'interno di un trigger (dove è necessario accedere a OLD e NEW – adinas