테이블 값을 복사하려고 하는데 index값에 따라 변하게 할수 있을까요? 채택완료
세진컴퓨터랜드
2년 전
조회 5,922

이벤트가 저장되어 있는 테이블이 있고
위에처럼 각 이벤트의 상품정보는 따로 저장되어 있습니다.
상품정보가 단계별로 저장되어 있어 상위단계가 있는 경우,
상위상품의 idx값을 parent에 저장한다고 할때,
이벤트 복사기능을 만들려고 하는데,
이벤트 데이터는 구현했는데
그에 따른 상품정보는 복사하는데 어려움이 있네요.
처음엔
</p>
<p>INSERT INTO another_table (column1, column2, column3)</p>
<p>SELECT column1, column2, column3 FROM your_table WHERE your_condition;</p>
<p>
이런식으로 했는데, 문제가 복사는 잘 되는데 새로운 idx 값에 따라 parent 값이
바뀌어야 하는데 바뀌지가 않네요.
무슨 방법이 없을까요?
역시 insert 를 한다음에 update를 해야 겠죠?
조언 부탁드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
2년 전
- Version
</p>
<p>SELECT VERSION() FROM DUAL;</p>
<p>/*</p>
<p>+------------+</p>
<p>| VERSION() |</p>
<p>+------------+</p>
<p>| 5.7.32-log |</p>
<p>+------------+</p>
<p>*/</p>
<p>
- DDL
</p>
<p>CREATE TABLE another_table(</p>
<p> idx int(11) not null auto_increment,</p>
<p> parent int(11) not null default 0,</p>
<p> product varchar(255) not null,</p>
<p> PRIMARY KEY(idx)</p>
<p>);</p>
<p>
- DML
</p>
<p>INSERT INTO another_table (parent, product) VALUES (0, '상품1'), (0, '상품2');</p>
<p>/*</p>
<p>+-----+--------+-----------+
| idx | parent | product |
+-----+--------+-----------+
| 1 | 0 | 상품1 |
| 2 | 0 | 상품2 |
+-----+--------+-----------+</p>
<p>*/</p>
<p> </p>
<p>SET @parent = 1;</p>
<p>INSERT INTO another_table (parent, product) </p>
<p>SELECT</p>
<p> idx parent,</p>
<p> CONCAT(</p>
<p> product,</p>
<p> '-',</p>
<p> (SELECT COUNT(1) + 1 FROM another_table WHERE parent = @parent)</p>
<p> ) product</p>
<p>FROM another_table</p>
<p>WHERE idx = @parent;</p>
<p>/*</p>
<p>+-----+--------+-----------+
| idx | parent | product |
+-----+--------+-----------+
| 1 | 0 | 상품1 |
| 2 | 0 | 상품2 |
| 3 | 1 | 상품1-1 |
+-----+--------+-----------+</p>
<p>*/</p>
<p> </p>
<p>SET @parent = 1;
INSERT INTO ...</p>
<p>/*</p>
<p>+-----+--------+-----------+
| idx | parent | product |
+-----+--------+-----------+
| 1 | 0 | 상품1 |
| 2 | 0 | 상품2 |
| 3 | 1 | 상품1-1 |
| 4 | 1 | 상품1-2 |
+-----+--------+-----------+</p>
<p>*/</p>
<p> </p>
<p>SET @parent = 3;
INSERT INTO ...</p>
<p>/*</p>
<p>+-----+--------+-------------+
| idx | parent | product |
+-----+--------+-------------+
| 1 | 0 | 상품1 |
| 2 | 0 | 상품2 |
| 3 | 1 | 상품1-1 |
| 4 | 1 | 상품1-2 |
| 5 | 3 | 상품1-1-1 |
+-----+--------+-------------+</p>
<p>*/</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인