임시 테이블을 생성하여 PostgreSQL의 동일한 테이블에있는 레코드를 복제하거나 복사하는 방법.포스트 그레스의 동일한 테이블에있는 레코드를 복제하거나 복사하는 방법은 무엇입니까?
하나의 테이블에서 이름이 변경된 동일한 테이블 (기본적으로 해당 테이블의 복합 키)에 레코드의 복제본을 만들려고합니다.
임시 테이블을 생성하여 PostgreSQL의 동일한 테이블에있는 레코드를 복제하거나 복사하는 방법.포스트 그레스의 동일한 테이블에있는 레코드를 복제하거나 복사하는 방법은 무엇입니까?
하나의 테이블에서 이름이 변경된 동일한 테이블 (기본적으로 해당 테이블의 복합 키)에 레코드의 복제본을 만들려고합니다.
는 논리 연구의 비트를 내놓았다나요 :
CREATE TEMP TABLE 임시 AS SELECT * FROM ORIGINAL WHERE NAME = 'joe';
UPDATE TEMP SET NAME = 'john'WHERE NAME = 'joe';
원래 위치에 삽입 SELECT * FROM 임시 WHERE NAME = 'john';
더 짧은 방법이 있는지 궁금합니다.
INSERT
을 모두 SELECT
과 결합하여 모두 수행 할 수 있습니다.
create table original
(
id serial,
name text,
location text
);
INSERT INTO original (name, location)
VALUES ('joe', 'London'),
('james', 'Munich');
을 그리고 당신이 할 수있는 INSERT
같이, 당신이 TEMP TABLE
를 사용하지 않고에 대해 얘기하고 스위치의 종류의 일을 : 즉
는 다음과 같은 테이블 정의와 데이터가 채워했다고 밝혔습니다
INSERT INTO original (name, location)
SELECT 'john', location
FROM original
WHERE name = 'joe';
여기는 sqlfiddle입니다.
이
는 (비록 아마 상당히 그래서 절대 시간 측면에서 작은 데이터 세트를 위해), 그 일 이후 더 빨리해야 하나INSERT
및
SELECT
추가
SELECT
및
CREATE TABLE
플러스
UPDATE
에 반대.