phpmyadmin の次のチュートリアル列では、phpMyadmin を使用して MySQL データ テーブルのトリガーを作成する際に遭遇する問題を紹介します。困っている友人の役に立てば幸いです。
#今日は、MySQL データベース内のテーブルのトリガーを作成しました。期待される効果は、テーブル a の受信したフィールドを変更した後、テーブル b の registerStatus です。 1 に更新され、値を受け取るように registerIP を変更します。
1. まず、トリガーを作成する SQL ステートメントを記述します:
1) 挿入時:
CREATE TRIGGER insertref BEFORE INSERT ON a FOR EACH ROW BEGIN UPDATE b SET registerStatus =1 WHERE NEW.id = id and NEW.received is not null and NEW.received !=''; update b set registerIP=NEW.received where NEW.id = id; end
2) 削除時:
CREATE TRIGGER deleteref BEFORE DELETE ON a FOR EACH ROW begin update b set registerStatus =0 WHERE OLD.id = id; update b set registerIP=NULL where OLD.id = id; end
CREATE TRIGGER updateref BEFORE UPDATE ON a FOR EACH ROW BEGIN update b set registerIP=NEW.received where OLD.id=id; end
質問 1:
がステートメントを書き終えて実行すると、エラーが報告され実行できません。トリガーを使用するには、SQL ステートメント ページの下部にある区切り文字に
「//」と入力する必要があります。
質問 2: トリガーを設定した後、テスト中にデータをテーブル a に挿入できず、エラー メッセージが報告されます:
1558 - Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.
インターネット上には、次のような投稿が多数あります。以前のアップグレードが原因です。データベースはありますが、データ構造はアップグレードされていません。
解決策: sudo mysql_upgrade -u root -p を実行してパスワードの入力を求め、パスワードを入力した後、データベースを再起動します。その後、データを挿入できます。
以上がMySQL データテーブルのトリガーを作成する際に phpMyadmin が遭遇した問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。