sql >> Database >  >> RDS >> PostgreSQL

Postgresql-gegenereerde kolom mislukt bij het samenvoegen van niet-nulkolommen

Probeer de betrokken kolommen van hetzelfde type te houden, b.v. instance casten naar text zou het lukken:

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
);

Overweeg het gebruik van text in plaats van varchar .

Demo:db<>fiddle




  1. Kan MySQL niet starten in CentOS7

  2. SQL Server 2017:SQL Server-gegevens kopiëren van Linux naar Windows met SSIS

  3. Waarom schalen NoSql-databases beter dan relationele databases? Hoe moet ik hiertussen kiezen?

  4. Hoe waarden uit JSON te selecteren in mysql