저장 프로 시저를 사용하는 것이 처음입니다. 저장 프로 시저를 사용하여 업데이트하고 삽입하는 가장 좋은 방법은 무엇입니까? 두 테이블이 있고 고유 한 ID로 일치시킬 수 있습니다. ID가로드 테이블과 대상 테이블 모두에 있으면 업데이트하려고합니다. 항목이 대상 테이블에없는 경우 삽입하려고합니다. 예제 템플릿이 도움이 될 것입니다. 감사합니다!저장 프로 시저 - 업데이트 및 삽입
1
A
답변
0
잘 이해하면 한 테이블에서 값을 선택하여 다른 테이블에 삽입하려고합니다. 두 번째 테이블에 ID가 있으면 행을 업데이트해야합니다. 잘못된 것이 아니라면 다음과 같은 것이 필요합니다.
mysql> select * from table_1;
+----+-----------+-----------+
| id | name | last_name |
+----+-----------+-----------+
| 1 | fagace | acero |
| 2 | ratangelo | saleh |
| 3 | hectorino | josefino |
+----+-----------+-----------+
3 rows in set (0.00 sec)
mysql> select * from table_2;
+----+-----------+-----------+
| id | name | last_name |
+----+-----------+-----------+
| 1 | fagace | acero |
| 2 | ratangelo | saleh |
+----+-----------+-----------+
2 rows in set (0.00 sec)
mysql> insert into table_2 select t1.id,t1.name,t1.last_name from table_1 t1 on duplicate key update name=t1.name, last_name=t1.last_name;
Query OK, 1 row affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from table_2;
+----+-----------+-----------+
| id | name | last_name |
+----+-----------+-----------+
| 1 | fagace | acero |
| 2 | ratangelo | saleh |
| 3 | hectorino | josefino |
+----+-----------+-----------+
3 rows in set (0.00 sec)
mysql>
+0
OP는 MySql이 아닌 SQL Server를 사용하고 있습니다. – peterm
0
SQL MERGE 문을 찾아야합니다.
UPSERT를 수행 할 수 있습니다 (예 : 키 값이없는 경우 INSERT, 키가없는 경우 UPDATE). 당신이 더 복잡하게 업데이 트를 않습니다 수행하기 전에
http://technet.microsoft.com/en-us/library/bb510625.aspx
그러나, 귀하의 요구 사항은이 개 곳에서 키 값을 확인합니다. 나는 이것을 시도하지는 않았지만 VIEW 또는 CTE를 사용하여 두 테이블에 ID가 존재하는 경우를 설정하는 데 사용할 수 있다고 생각합니다. & CTE/VIEW에서 MERGE를 기반으로합니다.
하지만 확실히 MERGE를 (을) 먼저보고 시작하십시오!
관련 문제
- 1. 저장 프로 시저 업데이트 및 삽입
- 2. mysqli 저장 프로 시저 및 업데이트 문
- 3. SQL 삽입 및 저장 프로 시저
- 4. 삽입 바이트 저장 프로 시저
- 5. 일반 삽입 저장 프로 시저
- 6. 저장 프로 시저 삽입 선택
- 7. 저장 프로 시저 실행 및 테이블 업데이트
- 8. 뷰 업데이트 및 저장 프로 시저 사용
- 9. 저장 프로 시저 및 EDMX 업데이트
- 10. 일반 업데이트 저장 프로 시저
- 11. 저장 프로 시저 - 업데이트 쿼리
- 12. 저장 프로 시저로 삽입 및 업데이트
- 13. 저장 프로 시저 및 트리거
- 14. 저장 프로 시저 구성 요소를 사용할 때 삽입, 삭제, 업데이트
- 15. Dataset 바인딩 저장 프로 시저 업데이트/삽입/삭제
- 16. SQL 저장 프로 시저 IF EXISTS 업데이트 삽입
- 17. 오라클 저장 프로 시저
- 18. 저장 프로 시저 Syintax
- 19. CLR 저장 프로 시저 v 일반 SQL 저장 프로 시저
- 20. 저장 프로 시저
- 21. 여러 데이터베이스에 저장 프로 시저 업데이트
- 22. SQL 저장 프로 시저
- 23. 조건부 업데이트 쿼리 저장 프로 시저
- 24. TransactionScope 및 저장 프로 시저?
- 25. HSQLDB 및 저장 프로 시저
- 26. 도우미 및 저장 프로 시저
- 27. 저장 프로 시저 및 뱅크
- 28. PHPUnit 및 저장 프로 시저
- 29. linq 및 저장 프로 시저
- 30. 저장 프로 시저 및 서버
아마도 저장 프로 시저가 필요하지 않습니다. 먼저 RDBMS (MySql, SQL Server, Oracle ...)를 사용하고있는 버전과 사용하고있는 버전을 알려주십시오. – peterm
죄송합니다, SQL Server 2008을 사용하고 있습니다 – Bobcat88