Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowa liczba dla każdego rekordu
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
phpion
Witam,
w triggerze uruchamiam takie zapytanie:

  1. INSERT INTO mails (
  2. recipient_id,
  3. campaign_run_content_id,
  4. instance_id,
  5. run_at
  6. )
  7. SELECT
  8. recipient_id,
  9. NEW.campaign_run_content_id,
  10. (
  11. SELECT
  12. instance_id
  13. FROM
  14. accounts_instances
  15. WHERE
  16. account_id = v_campaign.account_id
  17. ORDER BY
  18. RANDOM()
  19. LIMIT 1
  20. ),
  21. v_campaign.run_at
  22. FROM
  23. groups_recipients
  24. WHERE
  25. group_id = v_campaign.id
  26. ;


Mam drobny problem z losowym przypisaniem wartości do pola instance_id. Zapytanie to przerzuca mi część danych z innej tabeli i dla każdego wiersza chciałbym aby wpisało losowy identyfikator instancji (z tabeli accounts_instances). Aktualnie wszystkie wiersze otrzymują tą samą liczbę. Domyślam się, że chodzi tutaj o jakiś cache. Czy można się tego pozbyć? Co zrobić aby każdy wstawiany rekord otrzymywał losowy numer?

Pozdrawiam,
pion

// Edit:
Na chwilę obecną poradziłem sobie przenosząc podzapytanie do funkcji, ale z czystej ciekawości chciałbym się dowiedzieć czy jest to możliwe bez pisania osobnej funkcji.
cojack
select random();

?
phpion
Cytat(cojack @ 12.02.2010, 19:54:31 ) *
select random();

?

Jak to się ma do mojego pytania? Co mi to da?
cojack
Źle Cie zrozumiałem, myślałem że chodzi Ci o losową liczbę.

A jesteś pewien że zapytanie:
  1. SELECT
  2. instance_id
  3. FROM
  4. accounts_instances
  5. WHERE
  6. account_id = v_campaign.account_id

zwraca więcej niż jeden wynik? Wszak przeniesienie tego do innej funkcji nie powinno zmienić rezultatu wyniku zapytania.
phpion
Tak, zwraca więcej niż 1 wynik. Każde konto użytkownika może być przypisane do X instancji i chciałbym przy wstawianiu danych wpisywać losowy identyfikator instancji ze zbioru dostępnego dla danego użytkownika.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.