Все ошибки, связанные с запросом в User View начинаются со строки с указанием схемы и названия юзервью:
Failed to resolve user views: In schema
dev
: In user viewmain_user_view
:
тут:
dev
main_user_view
Далее следует текст ошибок.
Ниже - возможные ошибки (список дополняется)
Вид ошибки | Пояснение |
---|---|
Resolve error | None or more than one possible interpretation of "field_name" in "field_name" |
Resolve error | Unknown field "surmane" in "contacts"."surmane" |
Resolve error | Error at line X, position 1-2, token Y: parse error |
Migration Error | Error while executing: 23502: column "field" of relation "table" contains null values |
Migration Error | Error while executing: 23514: check constraint "constraint_name" of relation "entity" is violated by some row |
Скорее всего, вы используете JOIN-ы в конструкции FROM.
Если таблиц в FROM больше одной, то во всем запросе нужно конкретизировать из каких таблиц указанные поля.
Неверно
SELECT
name,
full_address
FROM
base.contacts
LEFT JOIN base.addresses
ON addresses.contact = contacts.id
ORDER BY
name
Верно
SELECT
contacts.name,
addresses.full_address
FROM
base.contacts
LEFT JOIN base.addresses
ON addresses.contact = contacts.id
ORDER BY
contacts.name
В указанной таблице нет поля с таким названием
Проверьте правильность написания поля на предмет опечатки
Если в названии поля есть заглавные буквы, проверьте наличие двойных кавычек(
"Field"
), выделяющих название этого поля (если название состоит из строчных букв - кавычки не обязательны)
Возможно, вы забыли указать @
для атрибутов вне @{ }
Неверно
SELECT
title = 'Адреса контактов',
name,
full_address
FROM
base.contacts
LEFT JOIN base.addresses
ON addresses.contact = contacts.id
ORDER BY
name
Верно
SELECT
@title = 'Адреса контактов',
contacts.name,
addresses.full_address
FROM
base.contacts
LEFT JOIN base.addresses
ON addresses.contact = contacts.id
ORDER BY
contacts.name
На строке X на позиции 1-2 стоит Y, хотя ожидается другой символ.
Проверьте открывающиеся и закрывающиеся скобки выше строки X
Проверьте есть ли запятая на строке выше (если она там нужна)
Проверьте, именовали ли вы набор данных при использовании JOIN с (SELECT ...)
// строка 10 в примерах ниже
Неверно
SELECT
name,
full_address
FROM
base.contacts
LEFT JOIN
(
SELECT full_address, contact
FROM base.addresses
)
ON addresses.contact = contacts.id
ORDER BY
name
Верно
SELECT
contacts.name,
addr.full_address
FROM
base.contacts
LEFT JOIN
(
SELECT full_address, contact
FROM base.addresses
) as addr
ON addr.contact = contacts.id
ORDER BY
contacts.name
Ошибка возникает при попытке создать в сущности новое поле с непустым значением (is_nullable = false
), а для этой сущности уже есть записи.
Проставьте
is_nullable = true
для нового поля
Вручную или с помощью автоматики проставьте значения этого поля для каждой уже созданной записи этой сущности
Вернитеis_nullable = false
В таблице entity
есть записи, которые перестанут удовлетворять условию ограничения constraint_name
после внесенных изменений.
Проверьте, что вносимые изменения не противоречат проверке
constraint_name
в записях таблицыentity
.
Если не выходит изменить данные так, чтобы соблюдался констрейнт
- удалите ограничение,
- если необходимо, измените данные в таблице, чтобы они соответствовали вносимому изменению
- внесите изменение, которое вызывает ошибку,
- создайте новое ограничение