powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как прервать транзакцию begin commit по условию?
10 сообщений из 10, страница 1 из 1
Как прервать транзакцию begin commit по условию?
    #39687410
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
BEGIN;
IF EXISTS (SELECT id FROM doc WHERE name='Петя') THEN ABORT;  -- вот тут
INSERT INTO ....;
SELECT currval('seq_name');
COMMIT;


Нужно проверить что если уже есть Петя то прервать транзакцию.

Но выводит ошибку

ОШИБКА: ошибка синтаксиса (примерное положение: "IF") LINE 1: IF (EXISTS (SELECT
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39687447
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто вставляй запись. Если Петя уже есть, вставка обломится по нарушению УК и транзакция откатится.
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39687473
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
manking
Код: sql
1.
2.
3.
4.
5.
BEGIN;
IF EXISTS (SELECT id FROM doc WHERE name='Петя') THEN ABORT;  -- вот тут
INSERT INTO ....;
SELECT currval('seq_name');
COMMIT;


Нужно проверить что если уже есть Петя то прервать транзакцию.

Но выводит ошибку

ОШИБКА: ошибка синтаксиса (примерное положение: "IF") LINE 1: IF (EXISTS (SELECT


BEGIN;
IF EXISTS (SELECT id FROM doc WHERE name='Петя') THEN ABORT; END IF;<<-- вот тут
INSERT INTO ....;
SELECT currval('seq_name');
COMMIT;
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39687627
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
manking,

Это pg/plsql или sql ?
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39688193
manking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-trot,

Обычный sql в postgreSql.
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39688335
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
manking,

IF в обычном SQL нет. Надо CASE использовать.
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39688844
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mankingОбычный sql в postgreSql.
Повторяю медленно: просто делай INSERT. Транзакция откатится по ошибке автоматически.
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39688890
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmankingОбычный sql в postgreSql.
Повторяю медленно: просто делай INSERT. Транзакция откатится по ошибке автоматически.
например у него уникъю нет

и разобраться что скл и плпгскл -- совершенно разные ленгвичи -- очень полезно
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39689628
white_shoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
BEGIN;
IF EXISTS (SELECT id FROM doc WHERE name='Петя') THEN 
 raise exception 'Петя у нас уже есть!';
END IF;

INSERT INTO ....;
SELECT currval('seq_name');
COMMIT;
...
Рейтинг: 0 / 0
Как прервать транзакцию begin commit по условию?
    #39689642
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_shoe,

Это что за код? На каком языке? Пробовали в `psql` запускать?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как прервать транзакцию begin commit по условию?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]