循环语句 vrandom float8 : random() ; teledb$ BEGIN teledb$ WHILE vrandom > 0.8 LOOP teledb$ RAISE NOTICE '%',vid; teledb$ vid : vid + 1; teledb$ vrandom random(); teledb$ END LOOP; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f27(); NOTICE: 1 f27 (1 row) FOR循环 plaintext teledb CREATE OR REPLACE FUNCTION f27() RETURNS VOID AS teledb $$ teledb$ BEGIN teledb$ FOR i IN 1..3 LOOP teledb$ RAISE NOTICE 'i %',i; teledb$ END LOOP; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f27(); NOTICE: i 1 NOTICE: i 2 NOTICE: i 3 f27 (1 row) teledb CREATE OR REPLACE FUNCTION f27() RETURNS VOID AS teledb $$ teledb$ BEGIN teledb$ FOR i IN REVERSE 3..1 LOOP teledb$ RAISE NOTICE 'i %',i; teledb$ END LOOP; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f27(); NOTICE: i 3 NOTICE: i 2 NOTICE: i 1 f27 (1 row) 使用REVERSE递减。 plaintext teledb CREATE OR REPLACE FUNCTION f27() RETURNS VOID AS teledb $$ teledb$ BEGIN teledb$ FOR i IN 1..8 BY 2 LOOP teledb$ RAISE NOTICE 'i %',i; teledb$ END LOOP; teledb$