MySql 테이블 삽입(존재하지 않으면 업데이트)
UPDATE AggregatedData SET datenum="734152.979166667",
Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";
동작하는 것은,datenum
존재하지만 이 데이터를 새 행으로 삽입하고 싶다.datenum
는 존재하지 않습니다.
갱신하다
데이터넘은 고유하지만 기본 키가 아닙니다.
Jai는 당신이 사용해야 한다는 것이 옳다.INSERT ... ON DUPLICATE KEY UPDATE
.
datenum은 고유 키이므로 update 구에 포함할 필요가 없으므로 변경하지 마십시오.표의 다른 모든 열을 포함해야 합니다.함수를 사용하여 다른 열을 업데이트할 때 올바른 값이 사용되는지 확인할 수 있습니다.
다음은 적절한 방법으로 다시 작성된 업데이트입니다.INSERT ... ON DUPLICATE KEY UPDATE
MySQL 구문:
INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE
Timestamp=VALUES(Timestamp)
다음을 사용해 보십시오.
지정한 경우
ON DUPLICATE KEY UPDATE
에 중복되는 값을 발생시키는 행이 삽입됩니다.UNIQUE index or
프라이머리 키, MySQL performs an [
UPDATE'](http://dev.mysql.com/doc/refman/5.7/en/update.html) 이전 행의...그
ON DUPLICATE KEY UPDATE
절에는 쉼표로 구분된 여러 열 할당을 포함할 수 있습니다.와 함께
ON DUPLICATE KEY UPDATE
행을 새 행으로 삽입할 경우 해당 행당 값은 1, 기존 행이 갱신될 경우 2, 기존 행이 현재 값으로 설정되어 있는 경우 0입니다.를 지정했을 경우,CLIENT_FOUND_ROWS
시스템에 연결할 때 기존 행이 현재 값으로 설정된 경우 영향을 받는 행 값은 1(0이 아님)이 됩니다.
두 필드(모두 외부 키)에 따라 테이블에 업데이트 또는 삽입해야 하는 상황이 발생했지만 고유 구속조건을 설정할 수 없었습니다(그래서 삽입...).ON DUPLICE KEY UPDATE는 동작하지 않습니다).사용 목적은 다음과 같습니다.
replace into last_recogs (id, hasher_id, hash_id, last_recog)
select l.* from
(select id, hasher_id, hash_id, [new_value] from last_recogs
where hasher_id in (select id from hashers where name=[hasher_name])
and hash_id in (select id from hashes where name=[hash_name])
union
select 0, m.id, h.id, [new_value]
from hashers m cross join hashes h
where m.name=[hasher_name]
and h.name=[hash_name]) l
limit 1;
이 예는 데이터베이스 중 하나에서 자른 것입니다.입력 파라미터(2개의 이름과 번호)는 [hasher_name], [hash_name] 및 [new_value]로 대체됩니다.중첩된 SELECT...LIMIT 1은 기존 레코드 또는 새 레코드 중 첫 번째 레코드(last_recogs.id는 자동 증가 프라이머리 키)를 꺼내 REPLACE INTO에 입력되는 값으로 사용합니다.
언급URL : https://stackoverflow.com/questions/6030071/mysql-table-insert-if-not-exist-otherwise-update
'source' 카테고리의 다른 글
Python에서 스레드 ID를 얻는 방법 (0) | 2022.12.24 |
---|---|
safari의 날짜가 잘못되었습니다. (0) | 2022.12.24 |
문자열에 숫자가 포함되어 있는지 확인합니다. (0) | 2022.12.24 |
이 거대한 정규식은 어떻게 작동하나요? (0) | 2022.12.24 |
python으로 "어제" 날짜 형식 지정 (0) | 2022.12.24 |