OS Linux 데비안 5.3.1이 도움이되는 경우.PostgreSQL : CAST 열만 존재하는 경우
PostgreSQL에서 테이블로 가져올 수있는 CSV 파일이 있습니다. 그것들은 모두 동일한 일반 레이아웃 (예 : 전 세계적으로 동일한 열)이지만 일부는 약간 다릅니다 (일부 열은 일부 누락 될 수 있음). 더 명확하게하기 위해서, 일반적인 레이아웃은 컬럼 a, b, c, d, e로 가정되지만 일부 테이블은 컬럼 a, b, d, e, 기타 컬럼 b, c, d, e만을가집니다.
CAST를 사용하여 열의 유형을 변경하고 열 a, b, c, d, e가있는 하나의 단일 전역 테이블 (t_import)으로 가져 오기위한 일반 SQL 쿼리를 만들고 싶습니다. 일부 테이블이 일부 열을 그리워으로
INSERT INTO t_import (a, b, c, d, e)
SELECT (
(CAST a AS integer) AS a,
(CAST b AS character varying(14)) AS b,
(CAST c AS integer) AS c,
(CAST d AS character varying) AS d,
(CAST e AS character varying) AS e
FROM t_csv;
는 그러나, 나는 내가 가지고있는 테이블 수에 대해 너무 무심 것 내가 가져올 각 테이블에 대한 쿼리를 작성해야합니다.
내가 가져 오려는 테이블에 열이 있는지 확인하는 방법이 있습니까? 존재하는 경우에만 열거 나 다른 기본값을 사용 하시겠습니까? 이 방법을 사용하면 오류없이 다른 테이블에 동일한 쿼리를 사용할 수 있습니다.
전 세계적으로이 내가 내가 할 싶은 무엇을 : 콜 럼 내가 가져올 테이블에있는 경우 열이 존재하는 경우,
- 검사를 내가 원하는 종류와 사용에 캐스팅 INSERT INTO에 대해
- 이 없으면 일부 기본값을 사용하여 INSERT INTO에 여전히 삽입 할 항목이 있으므로 오류 메시지가 표시되지 않습니다.
많은 연구를 거친 후에도 기술적 솔루션을 찾지 못했습니다. IF EXISTS, WHERE EXISTS, sub-queries ...와 같은 매개 변수로 인해 어려움을 겪고 있습니다. 그것을 할 수있는 방법이 있습니까 아니면이 문제를 보는 잘못된 방법이 있습니까? 기본값을 제공
동적 SQL을 사용하는 함수가 필요하며 예를 들어 다음과 같은 열을 검색해야합니다. 'information_schema.columns' –