반응형
PostgreSQL : 다른 테이블에서 삽입
다른 테이블의 테이블에 데이터를 삽입하려고하는데 테이블에는 공통 열이 하나만 있습니다. 문제는 TABLE1에 null 값을 허용하지 않는 열이 있으므로 비워 둘 수 없으며 TABLE2에서 가져올 수 없다는 것입니다.
나는 TABLE1이 있습니다 : id, col_1 (null 아님), col_2 (null 아님), col_3 (널 아님)
및 TABLE2 : id, col_a, col_b, col_c
그래서 어떻게 TABLE2의 id를 TABLE1에 삽입하고 "data1", "data2", "data3"과 같은 하드 코딩 된 문자열로 col_1-3을 채울 수 있습니까?
INSERT INTO TABLE1 (id) SELECT id FROM TABLE2 WHERE col_a = "something";
결과 :
오류 : "col_1"열의 null 값이 null이 아닌 제약 조건을 위반합니다.
SELECT에 리터럴 값을 제공하십시오.
INSERT INTO TABLE1 (id, col_1, col_2, col_3)
SELECT id, 'data1', 'data2', 'data3'
FROM TABLE2
WHERE col_a = 'something';
선택 목록에는 모든 값 표현식이 포함될 수 있습니다 .
그러나 선택 목록의 식은 FROM 절의 테이블 식에있는 열을 참조 할 필요가 없습니다. 예를 들어 상수 산술식이 될 수 있습니다.
그리고 문자열 리터럴은 확실히 값 표현식입니다.
병합을 사용할 수 있습니다.
insert into destination select coalesce(field1,'somedata'),... from source;
매우 늦은 답변이지만 사용자가 테이블 A의 데이터를 테이블 B에 삽입 (복사)하려는 특정 사용 사례에 대해서는 내 대답이 더 간단하다고 생각합니다.
INSERT INTO table_b (col1, col2, col3, col4, col5, col6)
SELECT col1, 'str_val', int_val, col4, col5, col6
FROM table_a
참고 URL : https://stackoverflow.com/questions/6898520/postgresql-insert-from-another-table
반응형
'IT story' 카테고리의 다른 글
자바 스크립트, 다음날 날짜 가져 오기 (0) | 2020.09.13 |
---|---|
로컬 리포지토리에 대한 "mvn deploy"와 "mvn install"의 차이점은 무엇입니까? (0) | 2020.09.13 |
Node.js : SOAP XML 웹 서비스를 사용하는 방법 (0) | 2020.09.13 |
SQL Server 테이블 생성 날짜 쿼리 (0) | 2020.09.13 |
p4v에서 특정 변경 목록 번호를 어떻게 표시합니까? (0) | 2020.09.13 |