2011-04-05 2 views
2

저는 T-SQL을 실행하기 위해 &을 자유롭게 쓸 수있는 SQL Server의 쿼리 편집기에 익숙합니다. PostgreSQL에서 함수를 생성하지 않고도 다음 코드를 실행하려면 어떻게해야합니까? 당신이 적어도 PostgreSQL의 9.0을 사용하는 경우PostgreSQL - "독립 실행 형"코드를 실행하는 방법?

DECLARE 
    l integer = 1; 
BEGIN 
    CREATE TABLE product_i (id bigint, key integer, value integer); 
    CREATE INDEX ix_product_i_size ON product_i(value) WHERE key = 1; 
    CREATE INDEX ix_product_i_mass ON product_i(value) WHERE key = 2; 

    LOOP 
     BEGIN; 
     INSERT 
     INTO product_i (id, key, value) 
     SELECT id, 1, CEILING(10 + RANDOM() * 90) 
     FROM generate_series(l, 1000) id; 

     INSERT 
     INTO product_i (id, key, value) 
     SELECT id, 2, CEILING(10 + RANDOM() * 90) 
     FROM generate_series(l, 1000) id; 

     COMMIT; 
     l := l + 1000; 
     EXIT WHEN l > 5000; 
    END LOOP; 
END 

답변

4

, 당신은 DO 블록이를 포함 할 수 있습니다 : 나는 최신 버전을 사용하고

http://www.postgresql.org/docs/9.0/static/sql-do.html

+0

. 그러나 쿼리 편집기는 초기 "DO"를 허용하지 않습니다. "오류 :"DO "또는 근처에서 구문 오류가 발생했습니다. LINE 1 : ... (분석 해제, 자막 꺼짐, 비용 발생, 버퍼 꺼짐) DO $ $ DECLA ... " – IamIC

+0

DO가 잘 작동합니다. 코드 또는 편집기의 버그처럼 보입니다. ANALYZE, VERBOSE, 등등에 대한 메시지는 EXPLAIN과 같은 것으로 보이는데 왜 필요합니까? 그리고 어떤 편집자를 사용합니까? 시도해보십시오 pgAdmin, 잘 작동합니다. –

+0

좋아, F7 (설명)에서이 오류를 표시합니다. 실행하지 않습니다. @Derek에게 감사합니다. – IamIC

관련 문제