2013-05-21 3 views
0

저는 Postgres에 두 개의 테이블을 만듭니다.업데이트 관련 테이블 (Postgres)

두 번째 테이블에있는 첫 번째 테이블과 다른 열 &은 첫 번째 테이블 (첫 번째 테이블의 기본 테이블이 아님) 및 다른 열과 동일한 기본 열 "MLeaseId"를 갖습니다.

어떻게 첫 번째 테이블 열에서 두 번째 열 데이터로 데이터를 복사합니까?

CREATE TABLE leasetype (
    "LeaseTypeId" integer NOT NULL , 
    "MLeaseId" character varying(45) NOT NULL, 
    "Resident" integer NOT NULL, 
    "Business" integer NOT NULL, 
    "RArea" float NULL, 
    "BArea" float NULL, 
    "RRent" double NULL, 
    "BRent" double NULL, 
    PRIMARY KEY (LeaseTypeId) 
); 

CREATE TABLE masterlease (
    "SrNo" integer unsigned NOT NULL, 
    "MLeaseId" varchar(45) NOT NULL, 
    "ExtId" integer unsigned NOT NULL, 
    "MPlotNo" character varying(45) NOT NULL, 
    "DPlotNo" character varying(45) NOT NULL, 
    "SheetNo" character varying(45) NOT NULL, 
    "NastiNo" character varying(45) NOT NULL, 
    "Date" date NOT NULL, 
    "LHolderName" character varying(45) NOT NULL, 
    "PhoneNo" character varying(45) DEFAULT NULL, 
    "TotArea" double NOT NULL, 
    "LeaseDuration" float NOT NULL, 
    "UseTypeId" int(6) NOT NULL, 
    "LFromDate" date NOT NULL, 
    "LToDate" date NOT NULL, 
    "OrderDtl" text, 
    "Remark" text, 
    "Address" character varying(300) NOT NULL, 
    PRIMARY KEY (MLeaseId) 
) 
+0

http://www.postgresql.org/docs/9.2/static/sql-update.html –

+0

'INSERT INTO ... SELECT'? '업데이트 '? 'UPDATE ... FROM'? 사용자 설명서를보십시오. 여전히 문제가있는 경우 샘플 행을 표시하고 결과를 표시하는 방법을 보여줍니다. –

답변

1

당신은 전혀 쿼리 (다른 테이블에서 선택하여 데이터를 삽입 할 수 있습니다, 당신은 단지 데이터가 쿼리에서 반환되고 있는지 확인해야하는 것은 삽입 매개 변수와 동일합니다. 하는 경우 난 당신이, masterlease하기 위해 "MLeaseId"열에게 다양한 leasetype 컬럼의 혼합이 추가되고있는 라인을 원하는 제대로 이해

이을 시도해보십시오.

물론
INSERT INTO masterlease(
    "SrNo", 
    "MLeaseId" 
    ) 
SELECT 
    123, 
    concat(leasetype."MLeaseId",'any_code', leasetype."RArea")::varchar as MLeaseId 
FROM 
    leasetype 

당신이 다른 사람을 추가 할 필요가 값도 사용할 수 있습니다. "SrNo"에서 수행했거나 SELECT 문의 다른 테이블에 조인 할 수 있습니다.

INSERT INTO 문의 열 유형이 SELECT 문과 정확히 일치해야 함을 잊지 마십시오. 캐스팅 (예 : :: varchar)을 통해이를 적용 할 수 있습니다.