Ограничения в PostgreSQL
PostgreSQL практически полностью удовлетворяет стандарту SQL92. Однако "практически полностью" не значит "целиком". Работа над PostgreSQL продолжается и не исключено, что последние отличия будут устранены в ближайший год, однако они есть. Список этих отличий (вероятно весьма неполный, дополнения приветствуются) я и постараюсь сейчас выдать:
- Отсутствует реализация внешнего ключа FOREIGN KEY. Пока рекомендуют применять триггеры, что позволяет как бы эмулировать внешний ключ, но увы по трудоемкости несравненно больше.
- Не работает ALTER TABLE COLUMN.
- Не работает INSERT INTO ... SELECT с AS.
- Не работает INSERT ... SELECT ... GROUP BY.
- Не работает UNION с LIMIT.
- Не работает CREATE TABLE ... AS SELECT ... UNION SELECT ...
- Не работает DISTINCT на курсорах (VIEWS).
Кроме того имеется несколько крупных и мелких багов, которые планируется устранить в ближайшем будущем. Более подробно обо все этом можно почитать в файле /usr/doc/postgresql-doc/TODO.gz, если установлена документация.