Testdaten Funktion

Hey, ich habe mich durch alle möglichen Informationsquellen durch gewühlt um mein aktuelles Problem zu Lösen und habe auch bereits eine Funktion erstllt, die dem eigentlich nachkommen sollte, doch leider muss ich irgendwo fehler eingebaut haben und bin wohl leicht Betriebsblind und sehe sie nicht, vielleicht könnt ihr meinen Blick etwas schärfen.

Also ich benötige eine Funktion die Testdaten in eine entsprechende Tabelle hinein erstellt. Und meine bisheriges Hauptproblem liegt bei den beiden Zeitwerten “timestamp”, die immer um eine bestimmten wert erhöht werden soll.
Also verwende ich einen “loop”. Ich setze hier mal die bisher entwickelte Funktion ein, die sich leider bis nicht so erstellen lässt.

REATE OR REPLACE FUNCTION create_test_data() RETURNS int4 AS $$
DECLARE
count INT;
query TEXT;
time_query TEXT;
time_record RECORD;
time_stamp TIMESTAMP;
BEGIN count = 1;
LOOP time_query = ‘SELECT NOW()::TIMESTAMP + INTERVAL ‘’ || (RANDOM() * 100000000)::INT::TEXT || ’ SECONDS’’ AS ts’;
EXECUTE time_query INTO time_record;
time_stamp = time_record.ts;
RAISE NOTICE ‘timestamp: %’, time_stamp;
query = 'INSERT INTO tblmeterdatenkopie
(meterid, messintervallbeginn, messintervallende, verbraucht_kwh, erzeugt_kwh)
VALUES ';
query = query || ‘(’|| 1 ||’, ’ || quote_literal(time_stamp) || ‘,’ || quote_literal(time_stamp) || '::TIMESTAMP + INTERVAL ‘‘1 HOUR’’, ’ || (ROUND(RANDOM() * 1000)/1000)::FLOAT || ', ’ || (ROUND(RANDOM() * 1000)/1000)::FLOAT || ‘)’;
EXECUTE query;
count = count + 1;
EXIT WHEN count > 10;
END LOOP;
RETURN count;
END;
$$
LANGUAGE ‘plpgsql’;

Ich hoffe das vielleicht jemand eine Lösung für mich findet.

Hmm, du solltest mir doch sowieso den Funktionscode schicken :wink:

Warum so umständlich, generate_series() existiert…

select current_timestamp + s * ‘5 second’::interval from generate_series(1,5) s;

Mal als Beispiel. Das in eine Tabelle zu speichern überlass ich Dir zur Übung.

Andreas