Всё-таки делать сайт на чистом sql - плохая идея, это я пошутил тогда, всю бизнес-логику в sql не переташишь. Если пишешь хайлоад, то пиши на Rust (топовый ЯП щас, и самый быстрый после C)
Хранимая процедура в отличие от триггеров не связана с конкретным событием в базе данных. Процедура - набор инструкций, который можно вызывать из другой программы или запроса. Когда ты вызываешь хранимую процедуру, она выполняет определенные действия в базе данных в соответствии с логикой, описанной внутри нее (изменение данных, выполнение операций или возврат результата).
Главное отличие триггеров в том, что они срабатывают автоматически при определенных событиях (например, при вставке, обновлении или удалении данных), а процедуру нужно вызвать. Без вызова сама она не сработает