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

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

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

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

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 других таблиц я сделаю это для)

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

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

15.12.2008 17:31:24
Какую версию MySQL вы используете?
cLFlaVA 15.12.2008 17:37:22
Я бы тоже следил за разбиением. Это еще не готово, хотя. dev.mysql.com/doc/refman/5.1/en/partitioning.html
Michael Haren 15.12.2008 17:37:23
2 ОТВЕТА
РЕШЕНИЕ

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

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

0
15.12.2008 17:34:54

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

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

1
15.12.2008 17:38:41