본문 바로가기
MySql

MySQL mysql에서 루프를 사용하여 다른 테이블의 데이터 삽입

by 베이스 공부 2020. 9. 29.
반응형

php 또는 다른 언어로 해결할 수 있지만 더 많은 SQL을 배우고 싶습니다.

이 문제를 해결할 방법이 있습니까?

두 개의 테이블이 있습니다 (구조를 변경할 수 없음). 하나는 데이터가있는 content 이고 다른 하나는 추가 정보가있는 content_info 입니다. content.id = content_info.content_id 와 같은 방식으로 관련됩니다.

내가하고 싶은 일 : content_info 에 데이터 셋이 없지만 content 에 데이터 셋이 있다면 복사하고 싶습니다. 마지막에 같은 수의 두 테이블의 데이터 세트. 나는 그렇게 시도했지만 불행히도 작동하지 않습니다.

...
BEGIN
  (SELECT id, ordering FROM content;)
  cont:LOOP
    @cid = SELECT content_id FROM content_info WHERE content_id = (id)
    IF @cid != (id) THEN
      INSERT INTO content_info SET content_id = (id), ordering = (ordering)
      ITERATE cont;
    END IF;
  END LOOP cont;
END
..

누군가 아이디어가 있습니까, 아니면 결국 가능하지 않습니까? 미리 감사드립니다!

 

해결 방법

 

INSERT IGNORE 를 사용하여 새 행을 삽입 할 수 있지만 테이블에 중복 항목 오류를 일으킬 수있는 행이 이미있는 경우 아무 작업도 수행하지 않습니다.

INSERT IGNORE INTO jos_content_frontpage (content_id, ordering)
SELECT id, ordering FROM jos_content

 

참조 페이지 https://stackoverflow.com/questions/7410224

 

 

반응형

댓글