-1

mysql を使用するのはこれが初めてで、トリガーの使用方法を学びたいと思っています。

navicat を使用しています。テーブル デザインに移動してから、トリガー タブに移動します。testing という名前のトリガーを作成し、定義に次のように入力しました。

delimiter |
  CREATE TRIGGER lpr.mytesting AFTER INSERT ON lpr.lpr_opt_upload 
    FOR EACH ROW BEGIN
      set new.lpr_text := reverse(new.lpr_text);
    END;
| delimiter ;

私がやるべきことは、何か新しいものが挿入されるたびに、lpr_text フィールドのテキストを逆にすることだけです。ただし、「1064 - SQL にエラーがあります。MySql サーバーのバージョンに対応するマニュアルを参照して、1 行目の 'ON lpr_opt_upload' FOR EACH ROW create trigger testing before insert on lpr_op' に正しい構文を確認してください。 " 何が間違っているのかわかりません。トリガーの例をコピーしているだけです。

//------------------------------------------------ --------------------------//

私は問題を理解しました。私は navicat を使用しており、navicat のトリガー タブでは、ヘッダーではなく本文のみを定義に入力します (例: CREATE TRIGGER lpr.mytesting AFTER INSERT ON lpr.lpr_opt_upload)。トリガーの名前の横にチェックボックスがあり、独自のヘッダーを書く代わりにそれらを使用します。

4

1 に答える 1

1

このDELIMITERコマンドはクライアント コマンドであり、すべてのクライアントがサポートしているわけではありません (サーバーに送信されるわけではなく、サーバーに正しく送信されるようにステートメントを区別する方法をクライアントに指示するだけです)。mysqlMySQL マニュアルでの参照は、コマンドライン ツールや MySQL Workbench (どちらもコマンドをサポートする)などの「公式」MySQL クライアントを使用していることを前提としていますDELIMITER

Navicat でステートメント区切り文字を変更する方法がわかりませんが、それが問題の原因です。

于 2012-05-21T20:17:10.707 に答える