mysql에 중첩 세트를 저장하려고합니다. 이 잘 작동동적 SQL If 문?
SELECT @myLeft := lft
FROM t
WHERE id = ?;
UPDATE t
SET rgt = rgt + 2
WHERE rgt > @myLeft;
UPDATE t
SET lft = lft + 2
WHERE lft > @myLeft;
INSERT INTO t
(title, lft, rgt)
VALUES ("New", @myLeft + 1, @myLeft + 2);
:
나는 노드를 삽입하기 위해 다음과 같은 동적 SQL을 사용합니다. 그러나 잠재적 인 문제가 있습니다. 첫 번째 SELECT가 결과를 반환하지 않으면 계층 구조가 손상됩니다. 이것을 트랜잭션으로 래핑해도 문제가되지 않습니다.
첫 번째 SELECT 문에서 결과가 반환되는 경우에만 UPDATE 및 INSERT 문이 실행되도록하려면 어떻게해야합니까? 가능하다면 SQL로이 작업을 수행하는 것이 좋습니다.
도움을 주셔서 감사합니다. syntaxt 경우
이 내가 저장 프로 시저를 사용한다는 것을 의미 하는가? 간단한 쿼리를 사용하여이를 수행 할 수있는 방법이 없습니까? – user1031947