операция удаления mysql - PullRequest
0 голосов
/ 07 октября 2009

есть ли способ удалить отношение, только если оно существует в таблице? Если не, Каков наилучший подход при удалении отношения в таблице:

  1. Проверьте, существует ли связь. Если это так, то удалите. (2 операции)
  2. Удалить и перехватить ошибку, если ее не было. (1 операция)

Спасибо

Ответы [ 3 ]

4 голосов
/ 07 октября 2009
DELETE FROM table WHERE id=30

удалит строку, если она существует, и ничего не сделает, если ее нет. Нет необходимости ловить ошибки.

1 голос
/ 07 октября 2009

DELETE удаляет строку, только если она существует. Выдает ошибку, если нечего удалять.

0 голосов
/ 07 октября 2009

Я думаю, что вы можете сделать выборку и выбрать, какую запись вы хотите удалить из этой выборки, что-то вроде

DELETE FROM target WHERE target_table.id IN (
  SELECT target_table.id INNER JOIN relation_table ON relation_table.target_table_id = target_table.id
)

где подвыбор, используя INNER JOIN, вернет записи с отношениями =)

надеюсь, это поможет! =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...