Некоторые различия между объявлением переменных в MySQL и PostgreSQL:
- Место объявления переменных: в PostgreSQL локальные переменные обычно объявляются в анонимном блоке DO для одноразового выполнения или внутри функций PL/pgSQL. 1 Ключевое слово DECLARE служит для указания типа переменной и её начального значения. 1 В PostgreSQL нельзя напрямую через SQL объявлять глобальные и сеансовые переменные. 1
- Область видимости переменных: переменная, объявленная в DO или функции, недоступна за пределами этих блоков. 1
- Типы переменных: в MySQL есть тип TINYTEXT для хранения строк переменной длины, который может хранить до 255 байт данных. 2 В PostgreSQL нет прямого эквивалента этого типа, но его функции может выполнять тип TEXT. 2 В MySQL есть тип LONGTEXT для хранения больших объёмов текста, для которого в PostgreSQL нет прямого эквивалента. 2
Кроме того, в PostgreSQL, в отличие от MySQL, есть более тесная интеграция с bash-оболочкой: можно из psql выполнять shell-команды, сохранять в переменные результат и затем использовать в генерации SQL-запросов. 5 В MySQL это тоже можно сделать, но более длинными и не всегда удобными путями. 5