#mysql #sql-delete
#mysql #sql-удалить
Вопрос:
Может кто-нибудь, пожалуйста, помочь мне написать процедуру / функцию для удаления строк старше 30 дней из столбца с именем prs_date
из всех таблиц в моей базе данных в mysql?
Комментарии:
1. Что вы пробовали до сих пор? Почему у вас не получилось? честно говоря, это не так сложно….
2. Это мешает вам искать в Google? Если вы загуглите свой заголовок, вы сможете сделать запрос в ответах с первыми 2 ссылками самостоятельно. Таким образом, у вас уже было бы что-то вместо ничего.
Ответ №1:
Посмотрите на DATEDIFF
оператор и объедините его с CURDATE()
DELETE FROM myTable WHERE DATEDIFF(CURDATE(), prs_date) > 30;
Комментарии:
1. здесь я должен выбрать определенный столбец из всех таблиц
2. О, извините, пропустил часть с.
all tables
3. @Marcus там будет много таблиц, так что будет сложно искать и записывать каждое имя таблицы, поэтому я запрашиваю функцию или процедуру.
4. я надеюсь, что это легко с созданием процедуры
5. Можно ли вручную указывать каждую таблицу, содержащую prs_date? Иначе это может стать сложным.
Ответ №2:
этот запрос может помочь
DELETE FROM sometable WHERE TO_DAYS(NOW()) - TO_DAYS(prs_date) <= 30;
Комментарии:
1. мне нужно написать процедуру / функцию
2. он удаляет, но мне это нужно для всех таблиц в моей базе данных, которые содержат столбец prs_date