在postgresql中插入包含compsite元素的表时出错

在postgresql中插入包含compsite元素的表时出错,postgresql,Postgresql,当我尝试插入“hotel”表时,出现以下错误: 错误:无法将类型记录强制转换为chambre 第4行:行(数组[(250,'2 place',300),(200。。。 ^ 详细信息:无法将类型记录[]转换为列1中的整数 create type chambre as( numChambre INTEGER , typeChambre VARCHAR(30), prix REAL);

当我尝试插入“hotel”表时,出现以下错误: 错误:无法将类型记录强制转换为chambre 第4行:行(数组[(250,'2 place',300),(200。。。 ^ 详细信息:无法将类型记录[]转换为列1中的整数

create type chambre as(
                   numChambre INTEGER ,
                   typeChambre VARCHAR(30),
                   prix REAL);


create table hotel (
                nom VARCHAR(30),
                Adresse adresse,
                positions positions,
                Chambres chambre[],
                nbPersonnel INTEGER,
                nbEtoile INTEGER,
                telephone VARCHAR(14));         


 insert into hotel values( 'president',
                      row(26,'maraval','oran'),
                      row(27.5,136),
                      row(array[(250,'2 place',300),(200,'1 place',250), 
                      (300,'suite',700)]),
                      60,
                      4,
                      '041-45-86-28');

您尚未提供ADRESE位置的详细信息,但对于这些位置,您肯定不需要
构造函数

对于
chambre
,只需将构造的数组表达式强制转换为
chambre[]
。最好始终在
INSERT
语句中显式指定列名,以避免混淆

INSERT INTO hotel 
            ( 
                nom, 
                adresse, 
                positions, 
                chambres, 
                nbpersonnel, 
                nbetoile, 
                telephone 
            ) 
     VALUES 
     ( 
     'president', 
      (26,'maraval','oran'), 
      (27.5,136), 
      array[(250,'2 place',300),(200,'1 place',250),(300,'suite',700)] :: chambre[], 
      60, 
      4, 
     '041-45-86-28' 
      );

请检查我的答案,如果你发现答案有用,请考虑它也会帮助别人。