0
POSTGRES 9.1에서 SQL 쿼리 창에 붙여 넣기 만하면되는 스크립트가 있습니다.postgres 스크립트 실행을 제어하는 방법
예를 들어 - 시작 스크립트 - 제 1 부
DO
$$
BEGIN
CREATE SEQUENCE base_listing_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE base_listing_id_seq
OWNER TO postgres;
EXCEPTION
WHEN duplicate_table THEN RAISE NOTICE 'sequence base_listing_id_seq already exists';
END
$$ LANGUAGE plpgsql;
-- Part 2
CREATE TABLE IF NOT EXISTS aes_fba_details
(
id serial NOT NULL,
product_id integer NOT NULL,
shippingprice numeric DEFAULT 0,
fbadatetime date NOT NULL,
currency text,
CONSTRAINT aes_fba_details_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE aes_fba_details
OWNER TO postgres;
-- End Scripts
내가하고 싶은 것은 (만약 당신이 좋아하면 버전 문자열을) 1 부 또는 2 부이 값에 따라 실행하는 것입니다 읽기 테이블에서.
예를 들어
myVariable = SELECT version-string FROM versionTable;
...
DO PART 1
...
If myVariable > 1 then
...
DO PART 2
...
End if
이도 가능합니까? 용어가 섞여 있으면 미리 사과드립니다.
감사합니다. 한 가지 큰 일은 나와 잘 맞습니다. 달성하고자하는 것에 대한 개요를 도울 수 있습니까? – err1
@ Sai-LeungLee 내가 필요한 것을 정말로 모른다. 원하는 코드를 거의 작성했습니다. 당신은 PL/PgSQL의'DO' 블록을 사용하는 방법을 알고 있습니다. 적절한 'IF ... THEN' 조건을 사용하여'DO '블록으로 감싸십시오. IF 문을 사용하는 방법은 PL/PgSQL 제어 구조 매뉴얼을 참조하십시오. –
고마워요.하지만 SQL 문에서 반환 된 데이터로 변수를 초기화하는 방법에 대해 조금 확신하지 못합니다. myVariable = SELECT version-string from versionTable; 이 비트가 작동되면 스크립트를 해킹 할 수있을 것이라고 확신합니다. 나는 코드의 DO 비트 (Google 검색에서 함께 자갈을 댈 수 있었던 것 이외에)에 관해서도 잘 아는 사람이다. SQL과 함수들 (한 지점까지) 그렇지만 모두 묶는 방법에 대해서는 혼란 스럽다. – err1