2016-03-23 22 views
3

私は例えばフレームワークx分ごとに自動的に削除する方法は?

をCodeIgniterの使用、私は、システムが自動的にそれを行うことができるかどうかは、テーブルAに2分ごとに

をすべてのレコードを削除するテーブルAを持っていますか?

あなたは

+5

シンプルなクローンジョブを使用できますか? –

+2

または、mysqlイベントスケジューラを使用することができます – 1000111

+2

[MySQLの自動TRUNCATEテーブル](http://stackoverflow.com/questions/21956291/automatic-truncate-table-in-mysql)の可能な複製 – kitensei

答えて

7

にリセットされます切り捨ての代わりにdelete文を使用します。


前提条件:

あなたのMySQLサーバにON event_schedulerを持っている必要があります。ヨーヨー場合:注

SET GLOBAL event_scheduler = ON;


:イベントスケジューラはevent_scheduler ONは、次のクエリを実行して有効にするにはONまたはOFF

SELECT @@event_scheduler;

であるかどうかを

チェックu MYSQL Serverを再始動すると、構成ファイルに次のものが書き込まれていないかぎり、イベント・スケジューラーの状況がリセットされます。 Windowsの場合

私の中内のmy.iniファイルが[mysqld]セクションLinuxの

[mysqld] 
event_scheduler=on 

の下でこれを書いてください。CNFファイル

[mysqld] 
event_scheduler=on 

イベント:

次のイベントがtablenameという名前のテーブルからデータを削除します。


イベント

CREATE 
EVENT `deleteEvent` 
ON SCHEDULE EVERY 2 MINUTE STARTS '2016-03-23 00:00:00' 
ON COMPLETION NOT PRESERVE 
ENABLE 
DO 
DELETE FROM tablename; 
'2016-03-23 00:00:00' で、イベントをインターバル2分ごとにスケジュールされますことをした後、最初に起動され、あなたのテーブルからデータを削除します。

DELETEの代わりにTruncateを使用できます。

TRUNCATE vs DELETE

+0

ありがとうございました。 localhostで作業しているかどうか? –

+0

ようこそ。 localhost mysqlサーバーでこのイベントを実行する場合は、localhost mysqlサーバーで上記の作業を行います。リモートのmysqlサーバでも同じことが言えます。 – 1000111

+1

ありがとうございました –

2

あなたは表Aに2分ごとにすべてのレコードを削除するには、cronジョブを使用することができますありがとうございました。 WebサーバのCronjobにPHPスクリプト(削除機能付き)を割り当てます。

+0

ありがとうございました –

+0

私の答えが働いている場合は、私の答えを受け入れてください。 – Cornest

+0

他にも良いと思います。 –

3

ベストかつ迅速な方法ではなく、削除のテーブルを切り捨てることになりますので、どちらかあなたがイベントではMySQLの独自のイベントスケジューラによってまたはcronjob-

でそれを行うことができますScheduler-

DELIMITER $$ 

ALTER DEFINER=`root`@`localhost` EVENT `trun_table` ON SCHEDULE EVERY 2 MINUTE STARTS '2016-03-23 16:30:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN 
     truncate table mytable; 
    END$$ 

DELIMITER ; 

mysqlがWindowsマシン上で実行されている場合、MysqlがLinuxマシン上で実行されているか、またはタスクマネージャであるかどうかcronjobによって:

"truncate table mytable;構文を1つのファイルに保存し、cronジョブまたはタスクスケジューラからスケジュールを作成します。

注:あなたがテーブルであなたのAUTO_INCREMENTのIDをリセットしたくない場合は、MySQLのイベントスケジューラを使用することができるようにTRUNCATE文は1

+0

ありがとうございました –

+0

私はあなたの助けが必要です。ここをクリックしてください:http://stackoverflow.com/questions/38175735/how-to-get-data-in-function-extend-controller –

関連する問題