database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7007 게시물 읽기
No. 7007
multi column update
작성자
사이베이스가 싫어(bluexmas)
작성일
2007-01-17 10:58ⓒ
2007-01-17 11:00ⓜ
조회수
4,497

오라클에서는 가능한 Query가 PostgreSQL에 되지 않아 질문합니다.

-- table1 생성문
CREATE TABLE table1 (
    id bigint NOT NULL,
    col_1 character varying(20),
    col_2 character varying(20),
    PRIMARY KEY (id)
);

-- table1_copy 생성문
CREATE TABLE table1_copy (
    id bigint NOT NULL,
    col_1 character varying(20),
    col_2 character varying(20),
    PRIMARY KEY (id)
);

-- table1 삽임문
insert into table1 values (1, 'a', 'a');

-- table1_copy 삽입문
insert into table1_copy values (1, 'b', 'b');

-- 문제의 update 1
db_2=> UPDATE table1 a
db_2->    SET (a.col_1, a.col_2) = ( SELECT b.col_1, b.col_2) FROM table1_c
opy b WHERE a,id = b.id);
ERROR:  syntax error at or near "a" 위치: 15
줄 1: UPDATE table1 a
 
-- 문제의 update 2 
db_2=>UPDATE table1
db_2=>   SET (col_1, col_2) = ('b', 'b')
ERROR:  syntax error at or near "(" 위치: 24
줄 2:     SET (col_1, col_2) = ('b', 'b')
             ^

이 글에 대한 댓글이 총 3건 있습니다.
UPDATE table1 SET col_1 = b.col_1 , col_2 = b.col_2 FROM table1_copy b where table1.id = b.id;
또는
UPDATE table1 SET col_1 = b.col_1 , col_2 = b.col_2 FROM table1 a, table1_copy b where a.id = b.id;
그냥님이 2007-01-17 15:42에 작성한 댓글입니다.
이 댓글은 2007-01-17 15:50에 마지막으로 수정되었습니다. Edit

감사합니다.

Update에 From이 가능하네요.

Oracle 프로젝트만 하다보니 PostgreSQL은 처음이라서....

사이베이스가 싫어(bluexmas)님이 2007-01-17 16:14에 작성한 댓글입니다.
이 댓글은 2007-01-17 16:14에 마지막으로 수정되었습니다.

참, 위의 안된다는 구문이 8.2 에서 지원하기 시작했습니다. 
알려드린다는 것을 까먹었네요.

필요하시면 서버 업그레이드 하세요.

김상기(ioseph)님이 2007-01-17 21:51에 작성한 댓글입니다.
이 댓글은 2007-01-17 21:52에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7010PostgreSql DB와 파워빌더연결?? [3]
온리유
2007-01-18
4258
7009권한설정 (액션에 대한 권한) [2]
조수한
2007-01-18
6167
7008php하고 연동이 안됩니다. [8]
권순용
2007-01-18
4496
7007multi column update [3]
사이베이스가 싫어
2007-01-17
4497
7006'\' 문자 저장 하는 방법점 알려주세요 [1]
정주호
2007-01-15
3916
7005rule 로 다수의 seq 를 변경할 수 있나요? [2]
송효진
2007-01-14
3917
7004저장프로시져에서 오류남. [3]
초보자
2007-01-12
4072
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다