2016-01-18 2 views
3

Я пытаюсь переместить данные из mysql в таблицу postgres. поэтому я использую шаг ввода таблицы для получения данных из таблицы mysql и используя шаг вставки/обновления для вставки данных в таблицу postgres.как вставить данные в таблицу postgres с типом данных enum в чайнике пентахо?

В таблице postgres имеется тип данных перечисления. поэтому, когда я пытаюсь вставить данные в этой области он выдает эту ошибку:

2016/01/18 12:36:56 - Insert/Update.0 - ERROR: column "subject_classification" is of type subject_classification_type but expression is of type character varying 
2016/01/18 12:36:56 - Insert/Update.0 - Hint: You will need to rewrite or cast the expression. 
2016/01/18 12:36:56 - Insert/Update.0 - Position: 166 

Я знаю, что это проблема литья, но я не знаю, как бросить его ENUM тип данных.

Это схема таблицы таблицы:

CREATE TABLE subject (
    subject_id bigint NOT NULL, 
    created_at timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL, 
    updated_at timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL, 
    code character varying(2000) NOT NULL, 
    display_code character varying(2000) NOT NULL, 
    subject_classification subject_classification_type NOT NULL, 
    ); 


    CREATE TYPE subject_classification_type AS ENUM (
    'Math', 
    'Social Science', 
    'Language Arts' 
); 

Пожалуйста, кто-нибудь помочь мне с этим. Благодаря!

ответ

0

Пример

create type suser as enum ('admin', 'user' , 'staff'); 
drop table if exists user_login; 
create table user_login(
    id serial primary key, 
    who_logged suser, 
    when_logged timestamp default CURRENT_TIMESTAMP 
); 

Пример решения

enter image description here

плохо, это решение не использовать силу PreparedStatement так что если и нужно вставить миллион запись может быть медленным.

Но это фактически упрощенная версия генерации вставки, инструкция по обновлению и использование того же шага «Выполнение SQL-оператора» для ее выполнения.

+0

или вы можете просто загрузить данные в базу данных и запустить функцию, которая будет обрабатывать все данные. – simar

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