반응형
upsert 라는 기능이 있습니다. (있으면 update 없으면 insert)
버전에 따라서 지원을 안할 경우 트리거를 이용하여 할수도 있으나
버전이 된다면 아래와 같은 명령어로 사용할 수 있습니다.
(test해보지 않아 문법이 틀릴 수 있습니다. 자세한 사항은 Docs를 참조해주세요.)
(버전에 따라 명령어가 실행되지 않을 수 있습니다. 적용되는 버전은 Docs를 참조해주세요.)
t1
----------------
a | b | c |
----------------
1 | 2 | 3 |
a unique key
insert / update
INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
or
UPDATE t1 SET c=c+1 WHERE a=1;
oracle nosql
UPSERT INTO t1 (a,b,c) VALUES (1,2,3); -- 4로 바꿀 순 없다.
mysql / maria
INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
oracle
MERGE INTO t1
USING dual
ON t1.a=1
WHEN MATCHED THEN
UPDATE SET t1.c = t1.c+1
WHEN NOT MATCHED THEN INSERT (t1.a, t1.b, t1.c)
VALUES (1,2,3)
https://mariadb.com/kb/en/insert-on-duplicate-key-update/
https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm#SQLRF01606
반응형
'DB(SQL) > mysql|maria' 카테고리의 다른 글
[MYSQL] 유용한 명령어 (0) | 2021.08.05 |
---|---|
[MYSQL] USER 테이블의 모든 계정의 권한을 다 N으로 변경 하였을 겨우 (0) | 2021.07.20 |
[MariaDB ] Real MariaDB 인덱스 머지 (0) | 2021.06.02 |
[MYSQL/MARIA] 복합 UNIQUE KEY와 NULLABLE (0) | 2021.06.02 |
[Mysql] ONLY_FULL_GROUP_BY (Maria DB) (0) | 2021.05.18 |