sql >> データベース >  >> RDS >> Mysql

MySQLトリガーでのCONCATの使用(、でのエラー)

    更新:

    1. DELIMITERを変更していないようです 。
    2. おそらく CURRENT_TIMESTAMP 存在しないCURTIMESTAMP()の代わりに

    構文的に正しいバージョンのトリガーは次のようになります

    DELIMITER $$
    CREATE TRIGGER users_update_trigger
    AFTER UPDATE ON users 
    FOR EACH ROW
    BEGIN
      INSERT INTO users_backlog (user_id, description, datetime) VALUES 
      (NEW.user_id, CONCAT('modified from ', OLD.hourly, ' to ', NEW.hourly), CURRENT_TIMESTAMP);
    END$$
    DELIMITER ;
    

    または(トリガーにはステートメントが1つしかないため、BEGIN ... ENDを省略できます。 ブロックとDELIMITER )単に

    CREATE TRIGGER users_update_trigger
    AFTER UPDATE ON users 
    FOR EACH ROW
      INSERT INTO users_backlog (user_id, description, datetime) VALUES 
      (NEW.user_id, CONCAT('modified from ', OLD.hourly, ' to ', NEW.hourly), NOW());
    

    こちらがSQLFiddle です。 デモ



    1. データベースメールプロファイル(SSMS)を削除する

    2. ORA-28040:一致する認証プロトコルの例外はありません

    3. 警告:mysql_num_rows()は、パラメーター1がリソースであると想定しています。ブール値が指定されています

    4. 間違ったエンコーディングを挿入した後、MySQLデータベースのデータを更新する