Я использую SQLite DB Browser v3.7.0. Если я создаю таблицу, используя следующий синтаксис:SQLite Check Constraints и SQLite DB Browser
CREATE TABLE "A" (
"AREA" TEXT NOT NULL DEFAULT 'DEFAULT'
CONSTRAINT "A-AREA-MAX_LENGTH_CHECK"
CHECK(LENGTH("AREA") <= 25),
CONSTRAINT "A-AREA-UPPERCASE_NO_WHITESPACE_CHECK"
CHECK(UPPER("AREA") = "AREA" AND INSTR("AREA", ' ') = 0)
);
Когда я иду на вкладку «Просмотр данных» SQLite браузера, я получаю столбцы не появляется (как если браузер не может разобрать SQL). Это проблема, поскольку, когда я нажимаю «Новая запись», я получаю исключение «Ошибка добавления записи: около «) »: синтаксическая ошибка (INSERT INTO '' VALUES();)".
Однако, если изменить ограничение быть либо один из:
CHECK(UPPER("AREA") = "AREA")
CHECK(INSTR("AREA", ' ') = 0)
Затем SQLite DB Browser, как представляется, правильно проанализировать все. Мой вопрос в том, является ли синтаксис выше недопустимого SQLite, или это проблема, которую необходимо сообщить в команду SQLite DB Browser? Благодарю.
EDIT
Я также протестировали в SQLite DB Browser v3.8.0, с аналогичными результатами: