2010-08-05 3 views
1

다음부터 : SQL INSERT from SELECT 및 거기에 표시된 정답.SQL 삽입 또는 업데이트

사용자 이름을 사용하여 행이 이미 있는지 여부를 확인할 수도 있어야합니다. 그래서 내가 삭제 한 다음 삽입하거나 더 좋은 방법이 있습니까? 그리고 삭제 된 경우, 내가 아이디 = 할 WHERE 테이블에서 삭제 말을 어떻게 사용자 이름은 REPLACE INTO 대신 INSERT INTO을 시도 여기 감사

답변

2

당신이 사용할 수 있습니다

DELETE a FROM Avatar a LEFT JOIN User u ON a.UserID=u.UserID WHERE u.UserName='theusername' 
0

를 선택합니다. UserID가 지정되고 테이블의 기본 키인 경우, 사용자 ID가 삽입 한 것과 일치하는 행을 덮어 씁니다.

DELETE FROM table WHERE UserID IN (SELECT UserID ...)

사이드 참고가 될 것입니다, 당신의 하위 질문에 대답하려면 : StackOverflow의 정말 기본적인 SQL 학습을위한 적절한 장소가 아닙니다. 처음으로을 읽으면 질문이 더 좋을 것이고 이에 대한 대답이 그에 따라 더 유용 할 것입니다.

0

"선택에서 삽입"을 수행하는 다른 질문에서부터, 삽입하려는 키에 대한 항목이 이미있는 행을 삽입하지 않으려한다고 가정합니다. 또한 "중복 키를 찾았습니다"와 같은 오류가 있다고 가정합니다. INSERT 후 무시 키워드를 추가, 그래서 당신은 쿼리가이 같은 모양입니다 : 광산 이러한 전제와

은, 수정은 간단 다음 삭제하면

INSERT IGNORE... //rest of query 
관련 문제