Mysql 테이블 또는 업데이트하려면 삽입하십시오 있는 경우

I want to 추가하기에서는 신앙이니라 행, 행 데이터베이스 테이블 같은 고유 키 난 업데이트하려는 행일 존재합니다.

예를 들어,

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

고유 키 (key) 는 'id' 합시다, 그리고 제 데이터베이스 좁히어 가 연속으로 'id = 1'. 이 경우 내가 있는 이 값들을 사용하여 업데이트하려면 행일. 일반적으로 이 오류가 발생합니다. 하지만 여전히 사용하고 있는 '무시' 도움이 되지 않을 것이라고 삽입하십시오 오류를 무시하시겠습니까 업데이트하십시오.

질문에 대한 의견 (3)
해결책

사용 '삽입하십시오. 복제본임을 '의 주요 업데이트

  • QUERY:*
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
해설 (23)

체크아웃하려고 복귀시킴

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

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

배치처리 삽입하십시오 사용할 때 다음 구문을 사용합니다.

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

이 시도하시겠습니까 아웃해야:

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

ᄋ "이번 도움이 됩니다.

해설 (6)

이거 드세요.

'삽입하십시오 표 (id, 이름, 나이) 값을 (& # 39, 1& # 39, & # 39, & # 39 21& # 39 Mohammad& # 39;;;;) # 39, & # 39 의 키, 나이, 이름 = 업데이트하십시오 복제본임을 Mohammad& # 39, & # 39, 21& = '

참고: 이 경우 id = & # 39 을 (를) '첫 삽입에서 후 id 는 기본 키, 1& # 39, & # 39 1& # 39 삽입하려면 시도할 때마다 id =', ',' 가 업데이트 이름과 나이, 이전 이름 기간보다오래된 변경됩니다.

해설 (3)
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);

이 솔루션은 작동합니까 모든 관련 질문.

이에 대해 자세히 알고 싶다면 이 기술서임을 이 링크에서

해설 (3)

Sqlite 를 사용할 때:

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

단, 'id' 는 기본 키입니다. 그렇지 않으면 그냥 삽입물의 다른 행일. 지켜보리니 삽입하십시오 (SQLite).

해설 (5)

그냥 여기서 있었기 때문에 이 솔루션을 찾고 있으나 업데이팅이 다른 동일 구조 표 (내 경우에는 웹사이트 테스트 DB 를 라이브입니다 DB):

INSERT  live-db.table1
SELECT  *
FROM    test-db.table1 t
ON DUPLICATE KEY UPDATE
        ColToUpdate1 = t.ColToUpdate1,
        ColToUpdate2 = t.ColToUpdate2,
        ...

한편, 언급한 것처럼 '에 포함될 필요가 있는 열만 레코드세트에 업데이트하려는 복제본임을 주요 업데이트 후'.

필요 없음 '또는' 선택 ',' I agree 표시되어도 나열하십시오 열의 삽입하십시오 it& # 39 의 더 나은 것이다 "라고 언급하였다.

해설 (0)

하지만, 내 경우에는 아래 내가 만든 첫 번째 'id' 1 은 이미 있고 기간보다오래된 쿼리하지 쿼리합니다 경우 이미 그 가치를 보다 먼저 만들 경우, 이후에는 '시대' 없이 '없음' 을 기간보다오래된 쿼리하지

REPLACE into table SET `id` = 1, `name` = 'A', `age` = 19

위 아래 같은 문제를 방지하기 위한 쿼리하지 만들기

INSERT INTO table SET `id` = '1', `name` = 'A', `age` = 19 ON DUPLICATE KEY UPDATE `id` = "1", `name` = "A",`age` = 19

5월 도움이 된다.

해설 (1)

의 경우, 늙은 야전 유지할 경우 (예: 이름). 쿼리는 다음과 같이 쓸 수 있다.

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

또한 신경을 써야 고유 키 제약 것을 잊지 마십시오.

ALTER TABLE `table` ADD UNIQUE `unique_key` ( `id` ) 
해설 (1)