0

私はデータベースを初めて使用するので、このテーブルがあり、毎日行を追加または変更するスクリプトを書きたいと思っています。できれば、日が変わったときに正確に。

MySQL-Workbench はどうやら lua および python スクリプトのみをサポートしているようで、構文がわかりません。

私は次のようなものを探しています

onDaychange(){
    SQL-query(INSERT ...)
    SQL-query(UPDATE ...)
}

そうしないと、サーバー上で永続的な c# または Java プログラムを実行する必要があります。

4

2 に答える 2

1

eventMySQLを時間ベースで実行する必要があります。
必要に応じてストアド プロシージャを呼び出すようにスケジュールできます。

delimiter //
drop event if exists event_scheduling_sample;

create event if not exists event_scheduling_sample
--  on schedule every 86400 second starts 00:00:00
--  at timestamp( adddate( current_date, 1 ),'00:00:00' )
--  on schedule every 1 day starts current_timestamp ends current_timestamp + interval '5' day
--  on schedule every 1 day starts current_timestamp ends timestamp( current_date,'23:59:59' )
  on schedule every 1 day starts timestamp( current_date + 1, '00:00:01' )

  comment 'event scheduling sample'
  do
    call db_name.procedure_name();
;
//
delimiter ;

参照: CREATE EVENT 構文

Event Scheduler のデフォルト状態は DISABLED です。
次のいずれかのステートメントで有効にする必要があります。

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

イベント スケジューラがオンの場合、イベント スケジューラ スレッドは の出力にSHOW PROCESSLISTデーモン プロセスとしてリストされ、その状態は次のように表されます。

mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: event_scheduler
   Host: localhost
     db: NULL
Command: Daemon
   Time: 3
  State: Waiting for next activation
   Info: NULL
2 rows in set (0.00 sec)

Event Scheduler がオンに設定されると、それが機能していることがわかります。

参照: MySQL イベント スケジューラの設定

于 2012-06-28T13:26:21.957 に答える
0

このスクリプトにはCronJobを使用できます。Cronは、Unixライクなコンピュータオペレーティングシステムの時間ベースのジョブスケジューラです。cronを使用すると、ユーザーはジョブ(コマンドまたはシェルスクリプト)を特定の時間または日付で定期的に実行するようにスケジュールできます。システムの保守や管理を自動化するために一般的に使用されますが、その汎用性により、インターネットへの接続など、他の目的にも使用できます。

cronファイル

mysql_query("INSERT INTO table (`text`,`date`) VALUES (testing','2012-6-25')");
//According to Date Condtion
mysql_query("UPDATE table SET `text`='testing2',`date`='2012-06-28'");
于 2012-06-28T13:31:28.720 に答える