Автоматизация на SQL (MySQL) - PullRequest
       1

Автоматизация на SQL (MySQL)

0 голосов
/ 02 декабря 2011

Я хотел бы задать вопрос знатокам SQL (точнее, MySQL).

У меня есть таблица бронирования столиков. И когда клиент делает заказ, есть время, чтобы позволить клиенту использовать мой сервис. Поэтому оговорка о том, что он должен был оставить столик бронирования.

Как только ограничение по времени использования достигнуто, есть некоторый метод (триггер, Я полагаю), что автоматически стирает запись этой книги на таблица

Если это так, может кто-нибудь дать мне представление о том, как начать его поиск, или это также приветствуется помощь в качестве более продвинутых строк кода.

Существует также вероятность того, что это будет возможно реализовать только через серверную часть (PHP, ASP ...), что не является верным, поскольку SQL является очень полным языком (насколько мне известно).

Edit1: проблема в том, что я считаю, что это задача СУБД, поэтому я хотел передать эту ответственность MySQL. Проблема в следующем: как?

Ответы [ 3 ]

2 голосов
/ 02 декабря 2011

A trigger запускается до или после события insert, update или delete (по крайней мере, в MySQL согласно docs )

ЧтоВы хотите, чтобы это была какая-то запланированная работа через приложение, будь то php, asp.net и т. д., или cron, которая вызывает какой-то сценарий SQL.

Итак, чтобы ответить, это не может быть сделано исключительно с помощью триггеров.

0 голосов
/ 02 декабря 2011

Вы можете использовать задания SQL, но если логика удаления сложна для управления запросами, я предлагаю вам использовать сценарий PHP, который сделает всю эту работу за вас.Просто запишите логику проверки / удаления данных в PHP и настройте для нее простую операцию cron.

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

Если у вас есть полный контроль над вашим сервером, запланированная операция будет выглядеть следующим образом (если вы хотите проверять записи в БД каждый день в 00:01):

cat /etc/cron.d/php5
0 1 * * * php /path/to/your/script.php >> /path/to/your_script.log

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

0 голосов
/ 02 декабря 2011

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

   CREATE EVENT db_name 
   ON SCHEDULE EVERY 10 SECOND
   DO
   DELETE FROM myschema.mytable WHERE expiration_date < NOW() 

Надеюсь, это поможет.

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