Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Typ tablicowy + procedura
koszi
post 17.01.2010, 18:37:02
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post
cojack
post 2.02.2010, 09:35:23
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Pokaż całą tabelę, całą funkcję a nie tylko jej ciało, oraz triggera to Ci pomogę.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 13:42