여기 내 상황이 있습니다. 우선, 관계형 데이터베이스에서 작업하지 않고 단순히 데이터를 조작하기위한 쉬운 방법으로 액세스를 사용하고 있습니다. 현재 테이블이 많습니다.
메인 테이블 하나를 MAIN이라고하고 10 개의 다른 테이블을 호출하자. X1, X2, X3 등을 호출 할 수있다. X1 테이블에 X1 속성이있는 항목이 포함되어있다. X2 테이블에는 X2 속성이있는 항목 등이 있습니다.ACCESS/SQL : INSERT/UPDATE를 동시에 수행하는 방법?
모든 Xx 테이블에는 동일한 필드가 있습니다. MAIN 테이블은 부울 인 필드 X1, X2 등과 같은 필드도 가지고 있습니다.
내가하고 싶은 것 :
내가 XX 테이블에서 데이터를 메인 테이블을 공급하고자합니다.
것은 여러 속성을 가진 항목이있을 수 있으므로 예를 들어 X1, X2, X5에 나타날 수 있습니다.
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
을하지만 아무것도 제공하지 않습니다 :
그래서 내가 먼저 실행에 노력했다. 지금은 MAIN 테이블에 아직 레코드가 없기 때문에 이것이 논리적이라고 가정합니다.
어쨌든 다음과 같은 쿼리를 작성할 수 있습니다.
테이블 X1의 레코드가 MAIN에 아직없는 경우 MAIN을 추가하고 X1 필드를 true로 설정하십시오.
X1 레코드가 MAIN에 이미있는 경우이를 업데이트하고 X1 필드를 true로 설정하십시오.
정말 (I를 내가 INSERT INTO를 고려하고
을 (그럼 난. 내가 가진 모든 X 테이블에 실행되도록 업데이트 할 것),하지만 난 이미 존재하는 데이터를 덮어 또는 오류가 발생하지 않도록하려면 이 모든 것에 대해 많이 알지 못함> _>)
팁을 제공 할 수있는 사람은 누구에게나 미리 감사드립니다.
편집 한 내가 먼저 (그들은 동일한 구조를 가지고)
그래서 난 처음에이 시도 메인 테이블에 XX 테이블에서 모든 데이터를 삽입 할 것이라고 생각
:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
는 작동하는지 확인하기 위해 하나의 필드에 그것을 시도했지만 그렇지 않습니다 :/
한번 생각 나는 X 테이블에서 모든 데이터를 추가 한 후, 나는 철을 실행 w 각 Xx 테이블에 대해 WHERE EXISTS를 사용하여 UPDATE하고 Xx 속성을 true로 설정하면 완료됩니다.
하지만 난 하나 ....
우리는 IF에서 IF를 사용할 수 있는지 알지 못했습니다. 이것에서 뭔가를 얻으려고 노력할 것입니다! –
"IF"가 Access ... "Invalid SQL instruction"에서 작동하지 않습니다. 아니면 내가 제대로하지 않을 수도 있습니다. –
명확하게 표시되고 질문의 텍스트에서 확인 된 질문에 대해 Access가 아닌 SQL을 Access로 게시하지 마십시오. -1 –