0

コンテンツ管理用のテーブルを作成しました。Mysql トリガーに詳しくありません。

     Key    Default     
      a     varchar(50)      
      b     varchar(50)      
      c     text      
      status    varchar(100)    

これがマイテーブルです。各テーブル更新時にテーブルの状態が変化するトリガーを作成しました。

 DELIMITER $$
    CREATE TRIGGER tr2 BEFORE insert or UPDATE ON p
    FOR EACH ROW BEGIN
     SET NEW.status = '1';
    END;
   $$
 DELIMITER ;

このトリガーは、行が変更されるときにのみ更新されます。挿入および更新のたびに「ステータス」を変更するためのトリガーを作成するにはどうすればよいですか..誰か助けてください

4

1 に答える 1

0

これは正しい構文ではありません。更新前にトリガーを作成するだけです

DELIMITER $$
    CREATE TRIGGER tr2 BEFORE UPDATE ON p
    FOR EACH ROW BEGIN
     SET NEW.date = '1';
    END;
   $$
 DELIMITER ;

column のデフォルト値を作成しますstatus = '1'

CREATE TABLE p(
a varchar(50),
b varchar(50),
c text,
status varchar(100) NOT NULL DEFAULT '1'
);

そうすれば、p に行を挿入し、ステータスの値を指定しないときはいつでも、ステータスは になります1。別のトリガーを作成することもできますBEFORE INSERTが、お勧めしません。そして、上記のソリューションは同じことを行います。

于 2012-06-18T16:13:52.143 に答える