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

MySQL-フィールドのデフォルト値を文字列連結関数として設定します

    MySQLは、DEFAULTの計算列または式をサポートしていません 列定義のオプション。

    これはトリガーで実行できます(MySQL 5.0以降が必要です):

    CREATE TRIGGER format_stage_name 
    BEFORE INSERT ON actors
    FOR EACH ROW
    BEGIN
      SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
    END
    

    同様のトリガーをBEFORE UPDATEで作成することもできます。 。

    NULLに注意してください NULLの連結であるため、名前と名前は 他の文字列を使用すると、NULLが生成されます 。 COALESCE()を使用する 必要に応じて、各列または連結された文字列に。

    編集: 次の例では、stage_nameを設定します NULLの場合のみ 。それ以外の場合は、stage_nameを指定できます INSERTで ステートメント、そしてそれは保存されます。

    CREATE TRIGGER format_stage_name 
    BEFORE INSERT ON actors
    FOR EACH ROW
    BEGIN
      IF (NEW.stage_name IS NULL) THEN
        SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
      END IF;
    END
    


    1. Postgresql COPY TO STDIN with CSVは、競合時にどのように更新しますか?

    2. 変数を宣言して同じOracleSQLスクリプトで使用するにはどうすればよいですか?

    3. 共通テーブル式、なぜセミコロン?

    4. WoocommerceバリエーションIDを取得するにはどうすればよいですか?