|
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
|
|||
---|---|---|---|
#18+
Здравствуйте, товарищи :) Провел некоторое время, забавляясь с синтаксисом \if и проверкой LAST_ERROR_SQLSTATE \if (:'LAST_ERROR_SQLSTATE' = '00000') \if (:'LAST_ERROR_SQLSTATE' == '00000') \if (:'LAST_ERROR_SQLSTATE' != '00000') \if (:'LAST_ERROR_SQLSTATE' <> '00000') Все эти смелые попытки были интерпретатором категорически отвергнуты, вероятно, синтаксис подкачал :) Я пришел к следующей форме: SELECT (:'LAST_ERROR_SQLSTATE' = '00000') AS mysqlstate \gset \if :mysqlstate которая интерпретатор удивительным образом устроила. Я чувствую, что что-то здесь не так. Толи нужно принудительно типы преобразовывать, толи еще чего. Как правильно то? Заранее спасибо. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 16:39 |
|
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
|
|||
---|---|---|---|
#18+
person1534, Всё верно сделали. \if условие проверяет только на логическое значение записанное в текстовом виде: on/off, true/false, 1/0. Сама конструкция \if не умеет вычислять выражение, это нужно сделать заранее, как в вашем примере select c \gset. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 16:47 |
|
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
|
|||
---|---|---|---|
#18+
Павел, Спасибо, но я точно помню, что я видел в Инете примеры \if c какими-то C-style выражениями. Сейчас я соображаю, что, возможно, это были примеры для какого-то fork'а проекта PostgreSQL. Вообще обидно :( ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2020, 17:05 |
|
|
start [/forum/topic.php?fid=53&msg=39970583&tid=1994637]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 339ms |
total: | 484ms |
0 / 0 |