Не получается удалить запись с таблицы

Изображение punchik

Юзал чужую БД и натолкнулся на интересную ситуацию. Все SQL-запросы выполняются с результатом "успешно", но вот только при выполнении DELETE (правильно написанного по синтаксису простейшего SQL-запроса) "успешно" удаляется 0 строк с БД, а на самом деле запрос не удаляет ничего, хотя запись с указанным в условии идентификатором в таблице есть. Как такое может быть?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

ну значит не выполняются

Изображение Игорь

ну значит не выполняются условия для удаления

Странно, но этот же запрос

Изображение punchik

Странно, но этот же запрос для специально созданной параллельно БД работал.
Код запроса: delete from Message where id=1
И в PGAdmin четко видно было, что есть запись с идентификатором 1.
Неужели нет других вариантов?

каскад?

У вас точно нет ссылок на это сообщение?

Вот этого не скажу точно, так

Изображение punchik

Вот этого не скажу точно, так как БДой я успел попользоваться всего пару минут. А разве не должно ругаться при наличии ссылок и отсутствии каскадирования? У меня результат был о успешном выполнении запроса (удалено 0 строк).

Да ёлки зелёные, сколько

Да ёлки зелёные, сколько угодно:

создаём таблицу

tmp=# CREATE TABLE tmp_tbl (id INTEGER PRIMARY KEY, name VARCHAR(64));
ЗАМЕЧАНИЕ:  CREATE TABLE / PRIMARY KEY создаст неявный индекс "tmp_tbl_pkey" для таблицы "tmp_tbl"
CREATE TABLE

заполняем данными

tmp=# INSERT INTO tmp_tbl VALUES (1, 'kaka');
INSERT 0 1
tmp=# INSERT INTO tmp_tbl VALUES (2, 'baka');
INSERT 0 1
tmp=# SELECT * FROM tmp_tbl;
 id | name 
----+------
  1 | kaka
  2 | baka
(2 строки)

создаём правило

tmp=# CREATE RULE tmp_rule AS ON DELETE TO tmp_tbl DO INSTEAD NOTHING;
CREATE RULE

пытаемся удалить

tmp=# delete from tmp_tbl where id=1;
DELETE 0
tmp=# select * from tmp_tbl;
 id | name 
----+------
  1 | kaka
  2 | baka
(2 строки)

Спасибо большое! Теперь

Изображение punchik

Спасибо большое! Теперь понял. Совсем забыл про те же триггеры. И с помощью их, наверняка, можно это сделать.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023