12.18 기타 함수
표 12.23 기타 함수
이름 | 설명 |
---|---|
DEFAULT() | 테이블 컬럼의 기본값을 반환합니다 |
GET_LOCK() | 명명 된 잠금을 가져옵니다 |
INET_ATON() | IP 주소의 숫자를 반환합니다 |
INET_NTOA() | 수치에서 IP 주소를 돌려줍니다 |
INET6_ATON() | IPv6 주소의 숫자를 반환합니다 |
INET6_NTOA() | 수치에서 IPv6 주소를 돌려줍니다 |
IS_FREE_LOCK() | 명명 된 잠금이 해제되어 있는지 확인합니다 |
IS_IPV4_COMPAT() | 인수가 IPv4 호환 주소의 경우, true를 돌려줍니다 |
IS_IPV4_MAPPED() | 인수가 IPv4 맵 주소의 경우, true를 돌려줍니다 |
IS_IPV4() | 인수가 IPv4 주소의 경우, true를 돌려줍니다 |
IS_IPV6() | 인수가 IPv6 주소의 경우, true를 돌려줍니다 |
IS_USED_LOCK() | 명명 된 잠금이 사용 중인지 여부를 확인합니다. true의 경우는 연결 식별자를 돌려줍니다. |
MASTER_POS_WAIT() | 슬레이브가 지정된 위치까지 모든 업데이트를 읽고 적용 할 때까지 블록합니다 |
NAME_CONST() | 지정된 이름이 컬럼에 지정됩니다 |
RAND() | 임의의 부동 소수점 값을 반환합니다 |
RELEASE_LOCK() | 명명 된 잠금을 해제합니다 |
SLEEP() | 시간 (초) 사이 잠합니다 |
UUID_SHORT() | 정수의 범용 식별자를 돌려줍니다 |
UUID() | 범용 고유 식별자 (UUID)를 반환합니다 |
VALUES() | INSERT에서 사용되는 값을 정의합니다 |
DEFAULT(
col_name
)테이블 컬럼의 기본값을 반환합니다. 컬럼에 기본값이없는 경우 오류가 발생합니다.
mysql>
UPDATE t SET i = DEFAULT(i)+1 WHERE id < 100;
FORMAT(
X
,D
)숫자
X
를'#,###,###.##'
과 같은 형식으로 변환하고 소수점D
정도 반올림하여 그 결과를 문자열로 반환합니다. 자세한 내용은 섹션 12.5 "문자열 함수" 를 참조하십시오.GET_LOCK(
str
,timeout
)timeout
초 타임 아웃을 사용하여 문자열str
에서 지정된 이름으로 락의 취득을 시도합니다. 음수timeout
값은 무한의 시간을 나타냅니다.락의 취득에 성공하면
1
을 반환하고 시간이 초과 된 경우 (예를 들어, 다른 클라이언트가 이미 그 이름을 잠그고있는 경우)는0
을 반환하고, 오류 (메모리 부족이나 mysqladmin kill 의한 스레드 정지 등)가 발생한 경우NULL
을 반환합니다.GET_LOCK()
을 사용하여 잠금을 취득한 경우RELEASE_LOCK()
을 실행했을 때, 새로운GET_LOCK()
을 실행했을 때, 또는 연결이 끊어진 경우 (정상 및 비정상을 불문하고)에 해제됩니다 .GET_LOCK()
을 사용하여 얻은 잠금은 트랜잭션과 상호 작용하지 않습니다. 즉, 트랜잭션을 커밋해도 트랜잭션 동안 검색된 잠금이 해제되지 않습니다.GET_LOCK()
을 사용하면 응용 프로그램 잠금을 구현하거나 레코드 잠금 시뮬레이션을 수행 할 수 있습니다. 이름은 서버 전체에 잠겨 있습니다. 하나의 세션에서 이름이 잠긴 경우,GET_LOCK()
에 의해 다른 세션에서 동일한 이름을 가진 잠금 요청이 차단됩니다. 그러면 지정된 잠금 이름에 대해 합의했다 클라이언트는 그 이름을 사용하면 공동의 권고 잠금을 실행할 수 있습니다. 그러나 공동 클라이언트 세트에 속하지 않는 클라이언트도 부주의 및 고의적 중에서나 이름을 잠글 수있는 점에 유의하십시오. 따라서 공동 클라이언트가 그 이름을 잠글 수 없도록하십시오. 이 가능성을 줄이는 방법 중 하나는 데이터베이스 또는 응용 프로그램 중심의 잠금 이름을 사용하는 것입니다. 예를 들어,db_name.str
또는app_name.str
형식의 잠금 이름을 사용합니다.mysql>
SELECT GET_LOCK('lock1',10);
-> 1 mysql>SELECT IS_FREE_LOCK('lock2');
-> 1 mysql>SELECT GET_LOCK('lock2',10);
-> 1 mysql>SELECT RELEASE_LOCK('lock2');
-> 1 mysql>SELECT RELEASE_LOCK('lock1');
-> NULL잠금
'lock1'
는 두 번째GET_LOCK()
호출에 의해 자동으로 취소되기 때문에 두 번째RELEASE_LOCK()
호출은NULL
을 반환합니다.여러 클라이언트가 잠금을 대기하고있는 경우는 락을 취득하는 순서가 정의되지 않습니다. 응용 프로그램은 잠금 요청을 발행했을 때와 같은 순서로 클라이언트가 락을 취득한다고 가정하지 않습니다.
이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.INET_ATON(
expr
)IPv4 네트워크 주소의 점으로 구분 된 표현이 문자열로 지정된 경우 주소의 수치를 나타내는 정수를 네트워크 바이트 순서 (빅 endian)로 돌려줍니다. 인수가 인식되지 않는 경우
INET_ATON()
는NULL
을 반환합니다.mysql>
SELECT INET_ATON('10.0.5.9');
-> 167773449이 예에서는 반환 값은 10 × 256 3 + 0 × 256 2 + 5 × 256 + 9로 계산됩니다.
INET_ATON()
는 짧은 형식의 IP 주소 ('127.0.0.1'
의 표현으로'127.1'
등)의 경우, 비NULL
을 반환과 반환하지 않는 경우가 있습니다. 따라서 이러한 주소는INET_ATON()
를 사용하지 마십시오.참고INET_ATON()
에서 생성 된 값을 저장하려면 서명 된INT
대신INT UNSIGNED
컬럼을 사용합니다. 서명 된 컬럼을 사용하는 경우에는 제 1 옥텟은 127보다 큰 IP 주소에 해당하는 값을 제대로 저장할 수 없습니다. 섹션 11.2.6 "범위 및 오버플로 처리" 를 참조하십시오.INET_NTOA(
expr
)숫자 IPv4 네트워크 주소가 네트워크 바이트 순서로 지정된 경우 주소의 점으로 구분 된 문자열 표현을 연결 문자 셋의 비 바이너리 문자열로 반환합니다. 인수가 인식되지 않는 경우
INET_NTOA()
는NULL
을 반환합니다.mysql>
SELECT INET_NTOA(167773449);
-> '10 .0.5.9 'INET6_ATON(
expr
)IPv6 또는 IPv4 네트워크 주소를 문자열로 지정된 경우 주소의 수치를 나타내는 이진 문자열을 네트워크 바이트 순서 (빅 endian)로 돌려줍니다. 숫자 형식의 IPv6 주소는 최대의 정수보다 큰 바이트가 필요하기 때문에이 함수에서 반환되는 표현의 데이터 유형은
VARBINARY
(IPv6 주소의 경우는VARBINARY(16)
, IPv4 주소의 경우는VARBINARY(4)
)입니다. 인수가 유효한 주소가 아닌 경우INET6_ATON()
는NULL
을 반환합니다.다음 예제에서는
HEX()
를 사용하여INET6_ATON()
의 결과를 출력 할 수있는 형식으로 표시합니다.mysql>
SELECT HEX(INET6_ATON('fdfe::5a55:caff:fefa:9089'));
-> 'FDFE0000000000005A55CAFFFEFA9089' mysql>SELECT HEX(INET6_ATON('10.0.5.9'));
-> '0A000509'INET6_ATON()
유효한 인수의 여러 제약을 모니터링합니다. 이러한 내용은 다음의 목록에 예와 함께 설명합니다.fe80::3%1
이나fe80::3%eth0
같은 끝에 영역 ID는 허용되지 않습니다.2001:45f:3:ba::/64
와192.168.1.0/24
처럼 끝의 네트워크 마스크는 허용되지 않습니다.IPv4 주소를 나타내는 값은 클래스없는 주소 만 지원됩니다.
192.168.1
등의 클래스 풀 주소는 거부됩니다.192.168.1.2:8080
같은 끝에 포트 번호는 허용되지 않습니다.192.0xa0.1.2
같은 주소 구성 요소의 16 진수는 허용되지 않습니다. 8 진수는 지원되지 않습니다.192.168.010.1
은192.168.8.1
대신192.168.10.1
로 처리됩니다. 이러한 IPv4의 제한은 IPv4 주소 부분을 가지는 IPv6 주소 (IPv4 호환 주소와 IPv4 맵 주소 등)에도 적용됩니다.
INT
값으로 숫자 형식으로 표현 된 IPv4 주소expr
을VARBINARY
값으로 숫자 형식으로 표현 된 IPv6 주소로 변환하려면 다음 식을 사용합니다.INET6_ATON (INET_NTOA (
expr
))예 :
mysql>
SELECT HEX(INET6_ATON(INET_NTOA(167773449)));
-> '0A000509'이 함수는 MySQL 5.6.3에서 추가되었습니다.
INET6_NTOA(
expr
)이진 문자열로 숫자 형식으로 표현 된 IPv6 또는 IPv4 네트워크 주소가 지정된 경우 주소의 문자열 표현을 연결 문자 셋의 비 바이너리 문자열로 반환합니다. 인수가 유효한 주소가 아닌 경우
INET6_NTOA()
는NULL
을 반환합니다.INET6_NTOA()
는 다음과 같은 특성이 있습니다.변환은 운영 체제의 기능을 사용하여 실행되지 않기 때문에 출력 문자열은 플랫폼에 의존하지 않습니다.
돌아 문자열의 최대 길이는 39 (4 x 8 + 7)입니다. 다음 문이 지정된 경우
CREATE TABLE t AS SELECT INET6_NTOA (
expr
) AS c1;결과로 생성 된 테이블에 다음의 정의가 포함됩니다.
CREATE TABLE t (c1 VARCHAR (39) CHARACTER SET utf8 DEFAULT NULL);
반환 문자열에서 IPv6 주소를 나타내는 문자가 사용됩니다.
mysql>
SELECT INET6_NTOA(INET6_ATON('fdfe::5a55:caff:fefa:9089'));
-> 'fdfe :: 5a55 : caff : fefa : 9089' mysql>SELECT INET6_NTOA(INET6_ATON('10.0.5.9'));
-> '10 .0.5.9 ' mysql>SELECT INET6_NTOA(UNHEX('FDFE0000000000005A55CAFFFEFA9089'));
-> 'fdfe :: 5a55 : caff : fefa : 9089' mysql>SELECT INET6_NTOA(UNHEX('0A000509'));
-> '10 .0.5.9 '이 함수는 MySQL 5.6.3에서 추가되었습니다.
IS_FREE_LOCK(
str
)str
이라는 이름이 붙은 잠금이 사용 가능한지 (즉 잠겨 있지 않은지) 여부를 확인합니다. 잠금이 사용 가능하다 (아무도 잠금을 사용하지 않는) 경우는1
을 반환하고, 사용중인 경우는0
을 반환하고 오류 (잘못된 인수 등)가 발생한 경우NULL
을 반환합니다.이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.IS_IPV4(
expr
)인수가 문자열로 지정된 유효한 IPv4 주소의 경우는 1을 반환하고, 그렇지 않으면 0을 반환합니다.
mysql>
SELECT IS_IPV4('10.0.5.9'), IS_IPV4('10.0.5.256');
-> 1 0특정 인수는
IS_IPV4()
이 1을 반환하면INET_ATON()
(와INET6_ATON()
)는NULL
이외를 돌려줍니다. 반대로 문은 해당하지 않습니다. 일부 경우에는IS_IPV4()
가 0을 반환하면INET_ATON()
는NULL
이외를 돌려줍니다.위의 비고에 나타난 바와 같이,
IS_IPV4()
는 유효한 IPv4 주소를 구성하는 것에 관해서,INET_ATON()
보다 정확하기 잘못된 값에 대해 강력한 검사를 수행해야하는 응용 프로그램 에 도움이 될 수 있습니다. 또는INET6_ATON()
를 사용하여 IPv4 주소를 내부 형식으로 변환하고 (잘못된 주소를 나타내는)NULL
결과를 확인합니다.INET6_ATON()
는 IPv4 주소의 확인이라는 점에서IS_IPV4()
와 동등의 공고입니다.이 함수는 MySQL 5.6.3에서 추가되었습니다.
IS_IPV4_COMPAT(
expr
)이 함수는
INET6_ATON()
에서 반환 된 것처럼 이진 문자열로 숫자 형식으로 표현 된 IPv6 주소가 지정됩니다. 인수가 유효한 IPv4 호환 IPv6 주소의 경우는 1을 반환하고, 그렇지 않으면 0을 반환합니다. IPv4 호환 주소의 형식은::
입니다.ipv4_address
mysql>
SELECT IS_IPV4_COMPAT(INET6_ATON('::10.0.5.9'));
-> 1 mysql>SELECT IS_IPV4_COMPAT(INET6_ATON('::ffff:10.0.5.9'));
-> 0IPv4 호환 주소의 IPv4 부분은 16 진수 표기법을 사용하여 표현 할 수 있습니다. 예를 들어
192.168.0.1
다음과 같은 원시 16 진수 값이 포함됩니다.mysql>
SELECT HEX(INET6_ATON('192.168.0.1'));
-> 'C0A80001'IPv4 호환 형식으로 표현 된
::192.168.0.1
은::c0a8:0001
또는 (선행 제로없이)::c0a8:1
과 동일합니다.mysql>
SELECT
->IS_IPV4_COMPAT(INET6_ATON('::192.168.0.1')),
->IS_IPV4_COMPAT(INET6_ATON('::c0a8:0001')),
->IS_IPV4_COMPAT(INET6_ATON('::c0a8:1'));
-> 1, 1, 1이 함수는 MySQL 5.6.3에서 추가되었습니다.
IS_IPV4_MAPPED(
expr
)이 함수는
INET6_ATON()
에서 반환 된 것처럼 이진 문자열로 숫자 형식으로 표현 된 IPv6 주소가 지정됩니다. 인수가 유효한 IPv4 맵 IPv6 주소의 경우는 1을 반환하고, 그렇지 않으면 0을 반환합니다. IPv4 맵 주소의 형식은::ffff:
입니다.ipv4_address
mysql>
SELECT IS_IPV4_MAPPED(INET6_ATON('::10.0.5.9'));
-> 0 mysql>SELECT IS_IPV4_MAPPED(INET6_ATON('::ffff:10.0.5.9'));
-> 1IS_IPV4_COMPAT()
와 마찬가지로, IPv4 맵 주소의 IPv4 부분은 16 진수 표기법을 사용하여 표현 할 수 있습니다.mysql>
SELECT
->IS_IPV4_MAPPED(INET6_ATON('::ffff:192.168.0.1')),
->IS_IPV4_MAPPED(INET6_ATON('::ffff:c0a8:0001')),
->IS_IPV4_MAPPED(INET6_ATON('::ffff:c0a8:1'));
-> 1, 1, 1이 함수는 MySQL 5.6.3에서 추가되었습니다.
IS_IPV6(
expr
)인수가 문자열로 지정된 유효한 IPv6 주소의 경우는 1을 반환하고, 그렇지 않으면 0을 반환합니다. 이 함수는 IPv4 주소가 유효한 IPv6 주소로 간주되지 않습니다.
mysql>
SELECT IS_IPV6('10.0.5.9'), IS_IPV6('::1');
-> 0, 1특정 인수는
IS_IPV6()
이 1을 반환하면INET6_ATON()
는NULL
이외를 돌려줍니다.이 함수는 MySQL 5.6.3에서 추가되었습니다.
IS_USED_LOCK(
str
)str
이라는 이름이 붙은 잠금이 사용 중이거나 (즉, 잠겨 있는지) 여부를 확인합니다. 이 경우 잠금을 보유하고있는 클라이언트의 연결 식별자를 돌려줍니다. 그렇지 않은 경우는NULL
를 돌려줍니다.이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.MASTER_POS_WAIT(
log_name
,log_pos
[,timeout
])이 함수는 마스터 / 슬레이브 동기화를 제어하는 데 도움이됩니다. 슬레이브가 마스터 로그에서 지정된 위치까지 모든 업데이트를 읽고 적용 할 때까지 블록합니다. 반환 값은 지정된 위치까지 진행까지 슬레이브가 대기해야하는 로그 이벤트의 수입니다. 이 함수는 슬레이브 SQL 쓰레드가 시작되지 않은 경우, 슬레이브의 마스터 정보가 초기화되어 있지 않은 경우, 인수가 잘못된 경우 또는 오류가 발생한 경우
NULL
을 반환합니다. 시간 제한을 초과 한 경우는-1
을 돌려줍니다.MASTER_POS_WAIT()
의 대기 중에 슬레이브 SQL 쓰레드가 중지되면 함수는NULL
을 반환합니다. 슬레이브가 지정된 위치를 지나면 함수는 즉시 리턴합니다.timeout
값이 지정된 경우MASTER_POS_WAIT()
는timeout
초가 경과 한 시점에서 대기를 정지합니다.timeout
은 0보다 큰 값으로해야합니다.timeout
가 제로 또는 부의 값인 경우는 제한이 없음을 의미합니다.이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.NAME_CONST(
name
,value
)지정된 값을 반환합니다. 결과 집합의 열을 생성 할 때
NAME_CONST()
을 사용하면 지정된 이름이 컬럼에 지정됩니다. 인수는 정수를 지정하십시오.mysql>
SELECT NAME_CONST('myname', 14);
+--------+ | myname | +--------+ | 14 | +--------+이 함수는 내부에서만 사용됩니다. 섹션 20.7 "저장 프로그램의 바이너리 로깅" 에서 설명한 것처럼 로컬 프로그램 변수에 대한 참조를 포함 저장 프로그램에서 문을 작성할 때 서버에서 사용됩니다. 이 함수는 mysqlbinlog의 출력에 표시 될 수 있습니다.
응용 프로그램에서 다음과 같은 간단한 별칭을 사용하여도 위에서 언급 한 예와 완전히 같은 결과를 얻을 수 있습니다.
mysql>
SELECT 14 AS myname;
+--------+ | myname | +--------+ | 14 | +--------+ 1 row in set (0.00 sec)칼럼 별칭에 대한 자세한 내용은 섹션 13.2.9 "SELECT 구문" 을 참조하십시오.
RELEASE_LOCK(
str
)GET_LOCK()
을 사용하여 검색된 문자열str
에 의해 이름이 붙여진 잠금을 해제합니다. 잠금이 해제 된 경우1
을 반환하고,이 thread에 의해 잠금이 설정되지 않은 경우 (이 경우 잠금이 해제되지 않습니다)는0
을 반환 명명 된 잠금이 존재하지 않으면NULL
을 반환합니다 .GET_LOCK()
를 호출해도 얻지 못한 경우 나 사전에 해제 된 경우 잠금이 존재하지 않습니다.DO
문은RELEASE_LOCK()
와 함께 사용하면 편리합니다. 섹션 13.2.3 "DO 구문" 을 참조하십시오.이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.SLEEP(
duration
)duration
인수로 지정된 초 동안 잠 (일시 정지)하고 0을 반환합니다.SLEEP()
가 중단 된 경우는 1을 돌려줍니다. 이 기간에는 소수 부분이 포함되어있는 경우도 있습니다.이 함수는 명령문 기반의 복제는 안전하게 사용할 수 없습니다.
binlog_format
가STATEMENT
로 설정되어있을 때이 함수를 사용하면 경고가 기록됩니다.UUID()
1997 년 10 월에 The Open Group에 의해 공개 된 'DCE 1.1 : Remote Procedure Call "(부록 A)"CAE (Common Applications Environment) Specifications "(문서 번호 C706, http://www.opengroup.org/public/ pubs / catalog / c706.htm )에 따라 생성 된 범용 고유 식별자 (UUID)를 반환합니다.
UUID는 공간과 시간에서 전역 고유 숫자로 설계되어 있습니다.
UUID()
의 2 회 호출이 서로 연결되지 않은 2 개의 서로 다른 컴퓨터에서 실행 된 경우에도 이러한 호출은 두 개의 서로 다른 값이 생성된다고 가정됩니다.UUID는
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
라는 형식으로 5 개의 16 진수로 구성utf8
문자열로 표현 된 128 비트의 숫자입니다.처음 세 개의 숫자는 타임 스탬프에서 생성됩니다.
네 번째 숫자는 (예를 들어, 섬머 타임 때문에) 타임 스탬프 값의 단순성이 손실 될 경우에 대비하여, 시간의 고유성이 유지됩니다.
5 번째 숫자는 공간의 고유성을 제공하는 IEEE 802 노드 번호입니다. (예를 들어, 호스트 컴퓨터에 Ethernet 카드가 탑재되어 있지 않거나 운영 체제의 인터페이스 하드웨어 주소를 찾는 방법을 모르는 것이 원인으로) 후자를 사용할 수없는 경우, 임의의 숫자로 바뀝니다. 이 경우 공간의 고유성을 보장 할 수 없습니다. 그러나 여전히 충돌이 발생할 가능성은 매우 낮습니다.
현재 인터페이스의 MAC 주소는 FreeBSD와 Linux에서만 고려되고 있습니다. 기타 운영 체제에서는 무작위로 생성 된 48 비트의 숫자가 MySQL에서 사용됩니다.
mysql>
SELECT UUID();
-> '6ccd780c-baba-1026-9564-0040f4311e29'경고UUID()
값의 목적은 고유성을 유지하는 것입니다 만, 반드시 추측 불가능하거나 예측 불가능하다고는 아닙니다. 예측 불가능 성이 필요한 경우는 UUID 값은 다른 어떤 방법으로 생성하십시오.참고UUID()
은 문 기반 복제는 제대로 작동하지 않습니다.UUID_SHORT()
(
UUID()
함수에서 반환되는 같은 문자열 형식의 128 비트 식별자가 아닌) "짧은"범용 식별자를 64 비트 부호없는 정수로서 돌려줍니다.다음과 같은 경우는
UUID_SHORT()
의 값이 고유 보장됩니다.일련의 마스터 / 슬레이브 서버에서 현재 호스트의
server_id
가 고유server_id
의 범위가 0에서 255이다mysqld 재시동 사이에 서버의 시스템 시간을 반환하지
mysqld 재시동 사이에
UUID_SHORT()
을 초당 평균 1600 만 횟수보다 자주 호출하지
UUID_SHORT()
의 반환 값은 다음과 같이 구성됩니다.(server_id & 255) << 56 + (server_startup_time_in_seconds << 24) + incremented_variable ++;
mysql>
SELECT UUID_SHORT();
-> 92395783831158784참고UUID_SHORT()
는 명령문 기반의 복제는 제대로 작동하지 않습니다.VALUES(
col_name
)INSERT ... ON DUPLICATE KEY UPDATE
문은UPDATE
절의VALUES(
함수를 사용하면 문col_name
)INSERT
부분에서 컬럼 값을 참조 할 수 있습니다. 즉,UPDATE
절VALUES(
는 삽입되는col_name
)col_name
값을 참조하기 위해 중복 키 충돌이 발생하지 않습니다. 이 함수는 여러 행을 삽입 할 때 특히 유용합니다.VALUES()
함수는INSERT
문ON DUPLICATE KEY UPDATE
절에서만 유효하며, 그 이외의 경우는NULL
를 돌려줍니다. 섹션 13.2.5.3 "INSERT ... ON DUPLICATE KEY UPDATE 구문" 을 참조하십시오.mysql>
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
->ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);