MySQL: удалить все строки, не только обновленные - PullRequest
1 голос
/ 18 января 2012

Идея состоит в том, что после зацикливания формы отправки все строки, не только обновленные формой, удаляются из базы данных.

Существует ли элегантное объявление MySQL для чего-то такого?

Ответы [ 4 ]

2 голосов
/ 18 января 2012

Нет. Сохраните PK и используйте NOT IN после удаления.

1 голос
/ 19 января 2012

Удаление перед рукой опасно;Что делать, если пользователь закрывает браузер?Помощь в хранении первичных ключей является опцией.Самое простое в итоге получилось так:

1) Установите все совпадающие даты строк примерно на 1 января 1970 года. 2) Отправьте форму, включая текущее время в обновленных строках.3) Удалить все строки со старой датой.

Работает очень хорошо.

0 голосов
/ 19 января 2012

Как насчет обратного условия?

Обновление tbl установить this = that, где col = 'нечто';Удалить из таблицы, где col! = 'Что-то';

0 голосов
/ 18 января 2012

у вас может быть столбец отметки времени в таблице.все строки, которые обновляются, будут иметь текущую метку времени.и затем вы можете выполнить запрос на удаление, выбрав все строки, чьи метки времени будут меньше, чем приблизительное время при обновлении таблицы.хотя это не полностью корректное решение.

другое - установить значение некоторых столбцов при обновлении, а затем удалить строки, значение столбца которых не обновлено

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