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

null以外の列を連結すると、Postgresqlで生成された列が失敗する

    同じタイプの関連する列を保持してみてください。 instanceのキャスト textへ トリックを行う必要があります:

    CREATE TABLE IF NOT EXISTS cdr_event
    (
        id bigint primary key generated always as identity,
        start_time timestamptz NOT NULL DEFAULT now(),
        end_time timestamptz NULL,
        group_id VARCHAR(10) NOT NULL,
        environment VARCHAR(10) NOT NULL,     
        level VARCHAR(10) NOT NULL,           
        schema VARCHAR(30) NOT NULL,      
        instance INTEGER NOT NULL,            
        hive_instance_db_name VARCHAR(100) GENERATED ALWAYS AS (group_id||'_'||environment||'_'||level||'_'||schema||'_'||instance::text) STORED,
        hive_static_db_name VARCHAR(100) GENERATED ALWAYS AS (group_id||'_'||environment||'_'||level||'_'||schema) STORED
    );
    

    textの使用を検討してください varcharの代わりに 。

    デモ: db<>fiddle




    1. mysqldumpはnullを空白として保存します

    2. max_allowed_pa​​cketパラメータを使用してもmysqldumpを使用すると、mysqlへの接続が失われます

    3. mysql_fetch_array()は'指定された引数は有効なMySQL結果リソースではありません'を返します

    4. クエリの最初の結果を残りの結果から分離するにはどうすればよいですか?