Я пытаюсь получить средство форматирования SQL IntelliJ (Ultimate 2019.1) для форматирования проверочных ограничений с помощью оператора CASE
, например:
(синтаксис postgres)
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK (
CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END
);
или
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK ( CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END);
Лучшее, что я получил на данный момент, это:
ALTER TABLE "foo"
ADD CONSTRAINT "bar" CHECK ( CASE
WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
ELSE FALSE
END);
Я прошел через несколько вариантов, но не могу найти тот, который говорит форматировщику не выравнивать WHEN
по ключевому слову CASE
(или поставить CASE
в новой строке).
Один вариант, который я нашел, это вообще не оборачивать чек. Однако, это становится нечитаемым быстро с большими CASE
утверждениями
Что я могу с этим поделать?
Заранее спасибо!