Я пришел к этому коду, но из этого я должен вручную вставить все столбцы и проверить его по каждому столбцу
CREATE TRIGGER table_a_update BEFORE UPDATE ON table_a
FOR EACH ROW
BEGIN
IF (NEW.column1 <=> OLD.column1)
THEN
INSERT INTO table_updates(table, object_id, user_id, column, old_value, new_value)
VALUES ("table_a",NEW.id, NEW.user_id, "column1", OLD.column1, new.column1)
END IF;
IF (NEW.column2 <=> OLD.column2)
THEN
INSERT INTO table_updates(table, object_id, user_id, column, old_value, new_value)
VALUES ("table_a",NEW.id, NEW.user_id, "column2", OLD.column2, new.column2)
END IF;
(other columns... ifs)
END;
Я хочу знать, как я могу получить все столбцы из NEW, чтоесть различия со старыми столбцами, а затем вставьте его, как в этом примере, используя php к тому, что я не знаю:
BEGIN
for(columns(NEW) as $column){
IF (NEW.$column <=> OLD.$column)
THEN
INSERT INTO table_updates(table, object_id, user_id,column, old_value, new_value)
VALUES ("table_a", NEW.id, NEW.user_id, $column, $OLD[$column], $NEW[$column])
END IF;
}
END;