PostgreSQL - как выполнить «автономный» код? - PullRequest
2 голосов
/ 05 апреля 2011

Я привык к редактору запросов в SQL Server, где можно свободно писать и выполнять T-SQL. Как получить следующий код для выполнения в 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

1 Ответ

4 голосов
/ 05 апреля 2011

Если вы используете хотя бы PostgreSQL 9.0, вы можете включить его в блок DO:

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

...