PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

La colonne générée par Postgresql échoue lors de la concaténation de colonnes non nulles

Essayez de garder les colonnes concernées du même type, par ex. transtypage instance en text devrait faire l'affaire :

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

Envisagez d'utiliser text au lieu de varchar .

Démo :db<>fiddle