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

mysqlの名前と名前に基づいて名前を自動入力するにはどうすればよいですか?

    BEFOREINSERTトリガーとBEFOREUPDATEトリガーを作成できます 次のように、名前フィールドをCONCAT_WS(''、first_name、middle_name、last_name)の値に設定します...ただし、これは行わないでください。それはひどい考えです。名前列は一切保存しないでください。名前を選択する場合は、CONCAT_WS(''、first_name、middle_name、last_name)ASfull_nameを選択するだけです。

    連結している値のいずれかがnullの場合、CONCATはnullを返すことに注意してください。そのため、代わりにCONCAT_WS(区切り文字付き)を使用することをお勧めします。リスト内のいずれかの値がnullの場合、その値を省略して残りの値を使用します。

    これを行うことにした場合、トリガーは次のようになります。

     CREATE TRIGGER name_update BEFORE UPDATE ON member
        FOR EACH ROW
        BEGIN
            SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
        END;
    
     CREATE TRIGGER name_insert BEFORE INSERT ON member
        FOR EACH ROW
        BEGIN
            SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
        END;
    

    お役に立てば幸いです。




    1. MySQLで複数の行を更新する

    2. PostgreSQLでテーブルコメントのリストを取得する

    3. Microsoft Accessは死んでおらず、VBAも死んでいない

    4. AWSElasticBeanstalkでのmysqlclientインストールエラー