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

FUNCTIONSUMが存在しません

    トリガーを見てください:

    UPDATE Orders Set Paid =(Select SUM(Amount) From Payments AS p Where p.OrderID  = Orders.ID),PayMethod =new.PayMethod  WHere Orders.id = new.OrderID;
    

    MySQLは、関数名と括弧の間のスペースを受け入れません(SQL_MODE =IGNORE_SPACEを設定していない限り、他の望ましくない副作用が発生します)

    次のコマンドを実行して、SQL_MODE設定を確認できます。

    SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';
    

    これに関するMySQLドキュメント:リンク

    いくつかの例:

    mysql> select sum(5);
    +--------+
    | sum(5) |
    +--------+
    |      5 |
    +--------+
    1 row in set (0.00 sec)
    
    mysql> select sum (5);
    ERROR 1305 (42000): FUNCTION sum does not exist
    

    解決策:スペースを削除する

    UPDATE Orders Set Paid =(Select SUM(Amount) From Payments AS p Where p.OrderID  = Orders.ID),PayMethod =new.PayMethod  WHere Orders.id = new.OrderID;
    


    1. SpringJDBCテンプレートを使用してmysqlデータベースからタイムスタンプ値を取得する

    2. PHPSUM関数

    3. varcharとnvarcharSQLServerデータ型の主なパフォーマンスの違いは何ですか?

    4. DBリクエストをインターセプトする方法は? (MySQL)