2015-11-07 2 views
1

У меня есть пользовательский тип «nameage» и таблица «namesages».Вставка массива настраиваемого типа в столбец таблицы в postgresql-9.4?

CREATE TYPE nameage AS(
name_ varchar(50), 
age smallint 
); 
CREATE TABLE namesages(
id serial, 
namesandages nameage[] 
); 

INSERT INTO namesages(namesandages) VALUES(ARRAY[['john', 24],['david', 38]]::nameage[]); 

Почему этот запрос дает ошибку ?;

ERROR: malformed record literal: "john" 
LINE 1: insert into namesages(namesandages) values(ARRAY[['john', 24... 
                 ^
DETAIL: Missing left parenthesis. 
********** Error ********** 
+0

Почему вы не правильно нормализуете свою модель данных? –

+0

Какова цель вашего двухмерного массива? В вашем текущем коде вам, похоже, нужно только одно измерение ... Кроме того, пожалуйста, вы можете задать один вопрос одновременно. Это будет намного проще и полезнее ответить –

ответ

3

Что ты имел в виду, чтобы сделать это было:

INSERT INTO namesages(namesandages) 
VALUES(ARRAY[ROW('john', 24),ROW('david', 38)]::nameage[]); 

Это создает одномерный массив составных типов, определяемых пользователем. Я не уверен, что вы намеревались сделать, когда вы определили двумерный массив ...

+0

ok спасибо за ответ – tablex

Смежные вопросы