ホームページ  >  記事  >  データベース  >  MySQL データテーブルのトリガーを作成する際に phpMyadmin が遭遇した問題を解決する

MySQL データテーブルのトリガーを作成する際に phpMyadmin が遭遇した問題を解決する

藏色散人
藏色散人転載
2021-05-22 16:54:433377ブラウズ

phpmyadmin の次のチュートリアル列では、phpMyadmin を使用して MySQL データ テーブルのトリガーを作成する際に遭遇する問題を紹介します。困っている友人の役に立てば幸いです。

MySQL データテーブルのトリガーを作成する際に phpMyadmin が遭遇した問題を解決する#今日は、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

3) 更新時:

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。