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

デフォルトのMySQL値で計算を実行する

    いいえ。DEFAULT句の値は定数でなければなりません。 (このルールの1つの例外は、CURRENT_TIMESTAMPの使用です。 TIMESTAMPのデフォルト値として 列。)

    別の方法として、TRIGGERを使用して、行が挿入または更新されたときに列の値を設定できます。

    たとえば、BEFORE INSERT FOR EACH ROWトリガー内で、他の列に指定された値から計算を実行したり、他のテーブルからデータをクエリしたりできます。

    編集

    質問の編集で与えられた例の場合、トリガー定義の開始点の例:

    CREATE TRIGGER mytable_bi 
    BEFORE INSERT ON mytable 
    FOR EACH ROW
    BEGIN
      SET NEW.percentage = (100.0 * NEW.marks) / NULLIF(NEW.total_marks,0);
    END
    


    1. ACLのデータベーススキーマ

    2. MySQLは日付範囲を最初に並べ替え、次に他のすべてを他の基準で並べ替えます

    3. Oracleの集計を使用したテーブルの回転/ピボット

    4. 外部キーが存在する場合にのみドロップします