Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Typ tablicowy + procedura
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
koszi
W tabeli store__categories mam kolumnę typu bigint[]. Podczas updejtu chce uzyskac pelna sciezkę az do roota danej kategorii. I wszystko byloby ok gdyby nie to ze postgres wypeir***la sie podczas updaejtu. Nie potrafi łyknac zmiennej ids typu tablicowego, natomiast jezeli sprobouje wtawic dane w postaci stringa rownież jest bład tyczacy sie wstawienie zmiennej text do typu bigint[]. Pytanie, jak z poziomu procedury zrobic upa typu tablicowego?

  1. DECLARE
  2. ids bigint[];
  3. BEGIN
  4. IF(TG_OP = 'UPDATE') THEN
  5. SELECT array(SELECT cTree.id FROM
  6. store__categories c
  7. LEFT JOIN store__categories cTree ON c.lft >= cTree.lft AND c.rgt <= cTree.rgt AND c.root_id = cTree.root_id
  8. WHERE c.id = NEW.id
  9. ORDER BY cTree.level ASC)
  10. INTO ids;
  11.  
  12. UPDATE store__categories SET path = ids WHERE id = NEW.id;
  13. END IF;
  14. RETURN NULL;
  15. END;
  16. $$
  17. LANGUAGE 'plpgsql' VOLATILE
  18. COST 100;
cojack
Pokaż całą tabelę, całą funkcję a nie tylko jej ciało, oraz triggera to Ci pomogę.
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.