나는 이런 식으로 뭔가를 할 :열 T를 나열하지 않고 기본 키 오류없이 표 T에서 행 T 사본을 삽입 할 수 있습니까?
INSERT INTO T SELECT * FROM T WHERE Column1 = 'MagicValue' -- (multiple rows may be affected)
문제는 T 기본 키 열이 있다는 것입니다 및 기본 키를 설정하려고 것처럼 그래서 이것은 오류가 발생합니다. 그리고 솔직히 기본 키를 설정하고 싶지 않습니다. 새 기본 키를 사용하여 완전히 새로운 행을 만들고 나머지 필드는 원래 행에서 복사하려고합니다.
다양한 테이블에 적용 할 수있는 제네릭 코드입니다. 음, 이렇게하는 좋은 방법이 없다면, 나는 동적으로 열 이름을 추출하고리스트를 구성하는 코드를 작성할 것입니다.하지만 아마도 그럴 수 있습니다. 데이터베이스 또는 다른 것에 중복 행을 만들려고하는 첫 번째 사람입니까?
어떤 상황에서도 select * !!!!!를 사용하여 삽입구를 작성해야합니까? 그것은 단지 일어날 기다리고있는 버그 일뿐입니다. 이것에 대한 좋은 일반적인 코드가 없기 때문에 하나 이상의 테이블에 유용하게 쓰일 인서트 스타트먼트를 작성하는 것은 적절하지 않습니다. 모든 쿼리에서 항상 필요한 열을 지정하는 것이 좋습니다. 프로덕션 코드에서 성능 문제를 일으키고 나쁜 버그를 유발하므로 SELECT *를 사용할 수 없습니다. – HLGEM
어떤 DBMS입니까? –