<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - wypełnienie tabeli losowymi danymi]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=388&amp;type=atom"/>
	<updated>2010-01-30T09:14:27Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=388</id>
		<entry>
			<title type="html"><![CDATA[Odp: wypełnienie tabeli losowymi danymi]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1771#p1771"/>
			<content type="html"><![CDATA[Tak na szybko
[code]
create or replace function fill() returns varchar as                            
$$                                                                              
declare                                                                         
v_d date;                                                                       
v_m integer;                                                                    
v_kod integer;                                                                  
v_cena integer;                                                                 
begin                                                                           
  select '2005-01-01' into v_d;                                                   
  v_m:=1;                                                                          
  for i in 1..24 loop                                                                                                                                           
        for v_kod in select kod_samochodu from samochody loop                   
                v_cena:=trunc(random()*100);                                    
                insert into zmiana_ceny values(v_kod,v_cena,v_d);                                                                                               
        end loop;                                                               
        v_d:=v_d + interval '1 month';                                                                                                                                 
  end loop;                                                                                                                                                       
  return 'done';                                                                  
end;                                                                            
$$                                                                              
language plpgsql;   
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-01-30T09:14:27Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1771#p1771</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[wypełnienie tabeli losowymi danymi]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1770#p1770"/>
			<content type="html"><![CDATA[Witam,

jestem baaardzo początkujący, więc proszę o wyrozumiałość. Mój problem przedstawia się następująco: mam tabelę 'samochody' z polami 'kod_samochodu' i 'marka_samochodu'. Mam drugą tabelę 'zmiana_ceny' z polami 'kod_samochodu', 'cena_samochodu' oraz 'data'. Tabela samochody np: 1 - audi, 2 - honda, 3 - toyota, 4 - fiat. Teraz musze wypełnić tabelę 'zmiana_ceny' losowo wygenerowanymi danymi z warunkami: data od 2005.01.01 do 2006.12.31, każdy wiersz daty powinien się zmieniać co miesiąc=>2 lata czyli 24 wiersze). Dla każdej marki powinien byc wpis w danym miesiącu, czyli np. dla daty 2005.01.01 powinny być 4 wiersze (audi, honda, toyota, fiat) i to samo dla każdego następnego miesiąca aż do 2006.12.31. Czyli sumując powinno być 24x4=96 wierszy, po 24 dla każdej marki. Najlepiej, gdyby procedura (funkcja?) sama pobrala ilosc marek samochodu z tabeli 'samochody' i potem odpowiednio uzupełniła tabelę 'zmiana_ceny'. Pole 'zmiana_ceny' ma być liczba losowa z zadanego przedziału, np. 1-99. Dzięki wielkie za pomoc!

P.S. mam dodany plpgsql (chyba bez tego się nie obejdzie, więc juz się z tym uporalem)

Pozdrawiam
Bartek]]></content>
			<author>
				<name><![CDATA[kornis]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1051</uri>
			</author>
			<updated>2010-01-29T22:39:52Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1770#p1770</id>
		</entry>
</feed>
