В вашем коде нет ничего плохого.
Можете ли вы просто использовать командную строку mysql?(как и любой другой dev / DBA, которого я знаю, использует для изменения схемы?)
Edit:
Ваш синтаксис INSERT
неортодоксален, но действителен для mysql.Обычно это будет:
...
INSERT INTO stock_log (p_id, old_stock, new_stock, date)
VALUES (OLD.id, OLD.quantity, NEW.quantity, CURDATE());
...