процедура mysql? Функция? - PullRequest
       8

процедура mysql? Функция?

0 голосов
/ 15 декабря 2008

Мне нужно иметь подпрограмму / функцию / сохраненный процесс / что угодно, чтобы архивировать отдельные учетные записи из нашей «активной» таблицы в неактивную таблицу.

Я могу записать это как группу запросов, каждый из которых выполняется по порядку в PHP по одному, но я стараюсь перенести большую часть работы в mysql, потому что PHP здесь не обязательно. 1003 *

В основном, это получит все данные:

insert into credit_archive_acc select  * from credit_acc where uid_usr = n; 
delete from credit_acc where uid_usr =n; 
insert into user_archive_usr select * from user_usr where id_usr = n; 
delete from user_usr where id_usr = n;

(около 3 других таблиц, к которым я сделаю это)

В любом случае, я бы хотел иметь возможность сделать что-то вроде: вызовите archive_account (n); и сделайте так, чтобы они выполняли всю работу (и как транзакция с откатом, если он потерпит неудачу)

Я слишком много спрашиваю о MySQL?

Ответы [ 2 ]

1 голос
/ 15 декабря 2008

Да, вы можете написать хранимые процедуры в mysql, см. http://dev.mysql.com/doc/refman/5.0/en/stored-programs-defining.html,, но обратите внимание на ограничения в http://dev.mysql.com/doc/refman/5.0/en/stored-program-restrictions.html

Для получения дополнительной информации см. http://www.scribd.com/doc/3101271/MySQL-Stored-Procedures-book

0 голосов
/ 15 декабря 2008

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

Имейте в виду, что для этого нужно использовать MySQL 5.1.6 или новее, а если нет, то время для обновления (в любом случае в новой версии произошли некоторые заметные улучшения в скорости).

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