[mysql] MySQL 테이블에 삽입하거나 존재하는 경우 업데이트

데이터베이스 테이블에 행을 추가하고 싶지만 동일한 고유 키가있는 행이 있으면 행을 업데이트하고 싶습니다.

예를 들면 다음과 같습니다.

insert into table (id, name, age) values(1, "A", 19)

고유 키는 id이고 내 데이터베이스 에는 행 이 있다고 가정 해 봅시다 id = 1. 이 경우 해당 값을 해당 행으로 업데이트하고 싶습니다. 일반적으로 오류가 발생합니다.
내가 사용 insert IGNORE하면 오류를 무시하지만 여전히 업데이트되지는 않습니다.



답변

사용하다 INSERT ... ON DUPLICATE KEY UPDATE

질문:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
name="A", age=19


답변

교체 확인

http://dev.mysql.com/doc/refman/5.0/en/replace.html

REPLACE into table (id, name, age) values(1, "A", 19)


답변

일괄 삽입을 사용하는 경우 다음 구문을 사용하십시오.

INSERT INTO TABLE (id, name, age) VALUES (1, "A", 19), (2, "B", 17), (3, "C", 22)
ON DUPLICATE KEY UPDATE
    name = VALUES (name),
    ...


답변

이것을 시도하십시오 :

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

도움이 되었기를 바랍니다.


답변

이 시도:

INSERT INTO table (id,name,age) VALUES('1','Mohammad','21') ON DUPLICATE KEY UPDATE name='Mohammad',age='21'

참고 :
여기서 id가 기본 키인 경우 삽입을 id='1'시도 할 때마다 처음 삽입 한 후 id='1'이름과 연령이 업데이트되고 이전 이름 ​​연령이 변경됩니다.


답변

INSERT IGNORE INTO table (id, name, age) VALUES (1, "A", 19);

INSERT INTO TABLE (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE NAME = "A", AGE = 19;

REPLACE INTO table (id, name, age) VALUES(1, "A", 19);

이 모든 해결책은 귀하의 질문과 관련하여 작동합니다.

이 진술에 대해 자세히 알고 싶다면 이 링크를 방문하십시오.


답변

SQLite를 사용하는 경우 :

REPLACE into table (id, name, age) values(1, "A", 19)

그 제공 id의 기본 키입니다. 그렇지 않으면 다른 행을 삽입합니다. INSERT (SQLite)를 참조하십시오 .