#mysql #laravel #postgresql
Вопрос:
существует ли какой-либо эквивалент MySQL only_full_group_by для Postgres?
Причина в том, что мы столкнулись с этой ошибкой column of must appear in the GROUP BY clause or be used in an aggregate function
. Но эта ошибка не произошла при подключении к другой базе данных с того же сервера Postgres, она происходит только в одной из недавно созданных баз данных, которая имеет точную структуру базы данных и данные с той, которая работает нормально.
Итак, интересно, есть ли какие-либо опции, которые мы можем отключить, чтобы не столкнуться с этой ошибкой.
Спасибо.
Комментарии:
1. Нет, у PostgreSQL нет такого расширения. Но вы можете использовать ОТДЕЛЬНОЕ предложение ON.
2. Есть ли способ обойти его, не меняя коды? Причина в том, что он может успешно работать с моей локальной и рабочей базой данных. Проблема возникает только на промежуточной стадии (когда я клонирую базу данных из своей локальной). Кроме того, это своего рода устаревшая система, если возможно, не захочет ее трогать, так как это повлияло на довольно многие части кода.
3. Вы хотите сказать, что ваш промежуточный сервер Postgresql имеет другую версию или другую конфигурацию, чем ваш рабочий сервер Postgresql? Я думаю, что это огромный красный флаг. Цель постановки-протестировать код, чтобы вы были уверены, что он будет работать перед развертыванием в рабочей среде. Если это не служит этой цели, потому что это несовместимая версия или что-то в этом роде, тогда зачем вообще беспокоиться о наличии промежуточной среды?
4. @BillKarwin Привет, нет промежуточного и производственного сервера postgresql, с той же версией и теми же конфигурациями (проверьте, запустив
SHOW ALL
). Причина, по которой мы настраиваем промежуточный этап, заключается в тестировании нового модуля, но это вызывает ошибку даже для деталей, которые работают на производстве и в моей локальной БД.5. Я бы рекомендовал вам сжать кулак и исправить ваши неверные запросы, которые вызывают эту ошибку. Они могут только доставить неприятности.