例: PHP バックグラウンド コードを通じて、従業員情報を削除したり、削除した従業員情報を復元したり (ごみ箱から従業員情報を復元するのと同様)、削除した従業員をクリアしたり (返信ステーションのクリア機能と同様) することができます。 アイデア: 従業員テーブルと従業員バックアップ テーブルが必要です。バックアップの場合、トリガーを使用して従業員テーブルの情報をバックアップ テーブルにインポートしてから、削除ボタンをクリックして削除機能を実行し、バックアップ効果を実現します。リカバリの場合、バックアップ テーブルのトリガーを使用してバックアップ テーブルのデータを削除し、同時に従業員テーブルにデータをインポートします。クリアの場合、切り捨てメソッドを使用してバックアップ テーブルのデータを完全にクリアし、メモリを解放します。このメソッドは、データ削除用のトリガーを呼び出しません。これ以上前置きはせずに、早速本題に入りたいと思います。 ステップ 1: テーブル、従業員テーブル、従業員バックアップ テーブルを作成します。 テーブル「従業員」を作成します( `id` int(11) NOT NULL AUTO_INCREMENT, `denumber` varchar(255) デフォルト '0', `idnumber` varchar(255) デフォルト '0', `worknumber` varchar(255) デフォルト '1', `pwd` varchar(255) デフォルト NULL, `emname` varchar(255) デフォルト '0', `tel` varchar(255) デフォルト '0', `salary` int(255) デフォルト '0', `entrytime` varchar(255) デフォルト '0', `orderpaixu` int(255) デフォルト '1', 主キー (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=100 デフォルトCHARSET=utf8 これは従業員リストです テーブル `employeebackup` を作成します ( `id` int(11) NULLではない、 `denumber` varchar(255) デフォルト NULL, `idnumber` varchar(255) デフォルト NULL, `worknumber` varchar(255) デフォルト NULL, `pwd` varchar(255) デフォルト NULL, `emname` varchar(255) デフォルト NULL, `tel` varchar(255) デフォルト NULL, `salary` int(255) デフォルト NULL, `entrytime` varchar(255) デフォルト NULL, `orderpaixu` int(255) デフォルト NULL, `deletetime` datetime デフォルト NULL、 主キー (`id`) ) エンジン=MyISAM デフォルト文字セット=utf8 従業員バックアップ テーブルには、削除時間を記録するための deletetime という追加フィールドがあります。 ステップ 2: 従業員テーブルのトリガーをバックアップして作成し (トリガーの詳細については、私の他のブログ http://www.cnblogs.com/liebagefly/p/7517998.html を参照してください)、従業員テーブルの情報をバックアップ テーブルにインポートしてから、削除ボタンをクリックして削除機能を実行します。 トリガーSQLコード: 従業員の削除前に deletesemployee トリガーを作成する 各行ごとに 始める employeebackup に挿入 (id、denumber、idnumber、worknumber、pwd、emname、tel、salary、entrytime、orderpaixu、deletetime) 値(OLD.id、OLD.denumber、OLD.idnumber、OLD.worknumber、OLD.pwd、OLD.emname、OLD.tel、OLD.salary、OLD.entrytime、OLD.orderpaixu、NOW()); 終わり PHP バックグラウンド メソッド、使用するフレームワークは yii2 です。 パブリック関数 actionEmployeedel($id) { 従業員::findOne($id)->delete(); $this->redirect(['employeemanage']); を返します。 } ステップ 3: 復元し、削除された情報を復元し、バックアップ テーブルでトリガーを使用し、バックアップ テーブルのデータを削除し、削除しながら従業員テーブルにデータをインポートします。 トリガーSQLコード: employeebackup の削除前に、create トリガー deletesemployeebackup を作成します。 各行ごとに 始める 従業員に挿入 (ID、従業員番号、ID番号、勤務番号、パスワード、従業員名、電話番号、給与、出勤時刻、注文金額) 値(OLD.id、OLD.denumber、OLD.idnumber、OLD.worknumber、OLD.pwd、OLD.emname、OLD.tel、OLD.salary、OLD.entrytime、OLD.orderpaixu); 終わり PHPコード パブリック関数 actionRecoveremployeedel($id) { 従業員バックアップ::findOne($id)->delete(); $this->redirect(['recoveremployee']); を返します。 } バックアップに加えて、クリア機能も必要な場合があります。バックアップ テーブルのデータを完全にクリアし、メモリを解放するには、truncate メソッドを使用します。このメソッドは、データ削除のトリガーを呼び出しません。 Yii2 のバックグラウンドで SQL を呼び出す本来の方法は、削除されたすべてのユーザーをクリアすることです。 パブリック関数 actionDropemployeedel() { Yii::$app->db->createCommand('employeebackup テーブルを切り捨てる') -> 実行(); $this->redirect(['recoveremployee']); を返します。 } 上記は、小規模プロジェクトでの MySQL トリガーの簡単な使用法です。 以下もご興味があるかもしれません:
|
<<: Apache、Tomcat、Nginx サーバーの詳細な理解と比較分析
>>: Nodejs 探索: シングルスレッドの高並行性の原理を深く理解する
<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...
1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...
あなたがlinuxerだと仮定すると、 windowserだとは想定しません。Windows ユーザ...
1.テーブル全体を更新します。データ行の列の値が空の場合は、別の列フィールドの値と同じにします。 ...
この記事では、JavaScriptのランダムロールコールテーブルの具体的なコードを参考までに紹介しま...
Linux インストール JDK1.8 手順1. CentOS に独自の openJDK があるかど...
数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...
目次クラスコンポーネントのプロパティ比較浅い同等の浅い比較機能コンポーネントの簡単な比較先週面接に行...
以前は、角を丸くするのは非常に面倒でしたが、CSS3 では、角を丸くするのは非常に簡単になり、bor...
Linux のコマンドラインで他のユーザーにメッセージを送信するのは簡単です。これを行うコマンドは多...
私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...
丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...
起源最近、私は要件 A に取り組んでいます。そこには、次のように記述される小さな機能ポイントがありま...
序文Ubuntu 18.04 LTS で IP アドレスを設定する方法は、これまで使用されていた設定...
目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...