데이터베이스 테이블에 행을 추가하고 싶지만 동일한 고유 키가있는 행이 있으면 행을 업데이트하고 싶습니다.
예를 들면 다음과 같습니다.
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)를 참조하십시오 .