
Implementuję sobie nested sets w postgresie korzystając z materiałów dla MySQL. Większość zapytań zgrabnie mi idzie przerobić, ale zatrzymałem się na add node. Mógłby ktoś mi pomóc z przeróbką? wydaje się wykrzaczać na @myRight:
Oryginalne dla MySQL:
LOCK TABLE categories WRITE; SELECT @myRight := rgt FROM categories WHERE id = 48; UPDATE categories SET rgt = rgt + 2 WHERE rgt > @myRight; UPDATE categories SET lft = lft + 2 WHERE lft > @myRight; INSERT INTO categories(title, ORDER, parent_categories_id, lft, rgt) VALUES('prooba', 1,1,@myRight + 1, @myRight + 2); UNLOCK TABLES;
Tutaj moja wstępna, niedziałająca jeszcze wersja dla Postgres:
BEGIN WORK; LOCK TABLE categories IN ACCESS SHARE MODE; SELECT @myRight := rgt FROM categories WHERE id = 48; UPDATE categories SET rgt = rgt + 2 WHERE rgt > @myRight; UPDATE categories SET lft = lft + 2 WHERE lft > @myRight; INSERT INTO categories(title, ORDER, parent_categories_id, lft, rgt) VALUES('prooba', 1,1,@myRight + 1, @myRight + 2); commit work;
Na razie pgadmin wykrzacza mi się tak i już kończą mi się pomysły:
ERROR: syntax error at or near ":" LINE 4: SELECT @myRight := rgt FROM categories ^ *** Błąd *** ERROR: syntax error at or near ":" Stan SQL:42601 Znak:74