Как привести к определенному пользователем типу в postgresql - PullRequest
2 голосов
/ 06 сентября 2011

Мне нужно создать таблицу с некоторыми пользовательскими типами и вставить данные.

Я попробовал этот способ.

  1. создать тип type1 как (i int);
  2. create функция mycast (int) возвращает type1 как 'select $ 1;'язык 'sql';
  3. создать приведение (int как type1) с функцией mycast (int) как неявной;
  4. создать таблицу table_type (t type1);
  5. вставить в table_typevalues ​​(1 :: type1);

Теперь значения вставляются, но заключаются в круглые скобки, как это

select * from table_type;

  t  
--------
 (1)

(1 rows)

Я считаю, что в моей функции может быть ошибка.Может кто-нибудь помочь.Я хотел в основном функцию, которая возвращает тот же вывод, что и мой ввод (без any ()).

Спасибо.

1 Ответ

2 голосов
/ 07 сентября 2011

Определенный вами тип является составным типом, содержащим один атрибут типа int.Текстовое представление составного типа - это круглые скобки вокруг списка атрибутов.Но, судя по вашей функции приведения (которая не работает, потому что она возвращает скаляр, а не составной тип), это совсем не то, что вам нужно.Лучшее, что вы можете сделать, это определить домен следующим образом:

create domain type1 as int;

Тогда вам даже не понадобится приведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...