При решении ряда задач возникает необходимость тестирования БД. Данная функция позволяет последовательно добавить в базу необходимое количество записей.
\set ON_ERROR_STOP
CREATE OR REPLACE FUNCTION "test"() RETURNS boolean AS
$body$
DECLARE
v_i INTEGER;
v_age INTEGER;
v_phone NUMERIC;
v_name VARCHAR;
v_surname VARCHAR;
v_adr TEXT;
BEGIN
FOR v_i IN 1..100000 LOOP
v_age := round(random()*2);
v_name = v_age-1;
v_phone := random()*3;
v_adr := (v_age::text || v_phone::text)::text;
v_surname := v_adr;
INSERT INTO spravka (name, surname, adr, phone, age) VALUES (v_name, v_surname, v_adr, v_phone, v_age);
END LOOP;
RETURN true;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
Соответственно в базе должна уже быть создана таблица, с нужным количеством полей. В данном примере эта таблица spravka.
Чтобы не набивать руками сохраняем всё в файл, например test.psql
Заходим в Postgres, конектимся к базе - \c testdb
Для использования функции, создаём язык - CREATE LANGUAGE plpgsql;
Переходим в каталог с файлом test.psql - \cd /путь/к файлу/
Выполняем команды из файла - \i test.psql
Вызываем нашу функцию - SELECT test();
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий