2012-11-27 2 views
1

INSERT INTO SELECT 문을 수행하려고하는데 SELECT 문 내의 필드 중 하나가 NULL이 아닌 NULL을 반환하고 싶습니다. 원래.INSERT INTO SELECT - 하나의 필드를 NULL로 바꿉니다.

지금까지 내가 가지고 :

INSERT INTO `archive` 
    SELECT * 
    FROM `product` 
    WHERE `id` = ? 

내가 그것을 여분의 필드를 추가로 일하기보다는 대체하지 않는, 다음을 사용하는 방법에 대한 생각을 기존 :

INSERT INTO `archive` 
    SELECT *, '' AS `image` 
    FROM `product` 
    WHERE `id` = ? 

내가 아는 모든 필드를 나열 할 수는 있지만 새 필드를 추가 할 때마다이 문을 업데이트해야 함을 의미합니다.

abov와 같은 짧은 버전으로 작업하는 방법이 있습니까? 이자형?

답변

2

두 가지 선택이 당신의 번호 :

  1. 목록이 SELECT
  2. 에서 개별적으로 필드를 INSERTUPDATE를 수행은 NULL

첫 번째로 열을 다시 설정 적절한 해결책, IMO입니다. 미래의 유지 보수가 쉬워지고 (더 어려워지는 대신에), 6 개월 후에 코드를 방문 할 때 훨씬 더 명확 해집니다.

+0

감사합니다 켄 - 그게 내가 생각한 것입니다. –