[SQL] 존재하는 경우 MySQL의 테이블 또는 업데이트에 삽입
SQL존재하는 경우 MySQL의 테이블 또는 업데이트에 삽입
나는 데이터베이스 테이블에 행을 추가 할 수 있지만, 행이 동일한 고유 키가있는 경우 내가 행을 업데이트 할.
예를 들어,
insert into table (id, name, age) values(1, "A", 19)
하자가 고유 키가 ID입니다, 내 데이터베이스에 나는이 값을 해당 행을 업데이트 할 경우에는 ID = 1. 행이 말한다. 일반적으로이 오류를 제공합니다. 내가 무시 삽입 사용하는 경우 그 오류를 무시합니다,하지만 여전히 업데이트되지 않습니다.
해결법
-
==============================
1.DUPLICATE KEY UPDATE ON을 사용하여 INSERT ...
DUPLICATE KEY UPDATE ON을 사용하여 INSERT ...
질문:
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE name="A", age=19
-
==============================
2.교체 확인
교체 확인
http://dev.mysql.com/doc/refman/5.0/en/replace.html
REPLACE into table (id, name, age) values(1, "A", 19)
-
==============================
3.때 다음과 같은 구문을 사용하여 삽입 배치를 사용하여 :
때 다음과 같은 구문을 사용하여 삽입 배치를 사용하여 :
INSERT INTO TABLE (id, name, age) VALUES (1, "A", 19), (2, "B", 17), (3, "C", 22) ON DUPLICATE KEY UPDATE name = VALUES (name), ...
-
==============================
4.이 밖으로 시도 :
이 밖으로 시도 :
INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;
도움이 되었기를 바랍니다.
-
==============================
5.이 시도:
이 시도:
INSERT INTO 테이블 (ID, 이름, 나이) VALUES ( '1', '모하메드', '21') ON DUPLICATE KEY UPDATE 이름 = "무하마드 ', 나이 = '21'
노트 : ID가 ID로 먼저 삽입 후 다음 기본 키를 여기 경우 = '1'때마다 시도가 ID를 삽입 = '1'의 이름과 나이, 변경됩니다 이전 이름 연령을 업데이트합니다.
-
==============================
6.
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);
이러한 모든 솔루션은 귀하의 질문에 대한 작동합니다.
당신은이 문이 링크를 방문에 대한 세부 사항을 알고 싶다면
-
==============================
7.때 SQLite는 사용 :
때 SQLite는 사용 :
REPLACE into table (id, name, age) values(1, "A", 19)
ID가 기본 키입니다 제공. 아니면 그냥 다른 행을 삽입합니다. 참조 INSERT (SQLite는).
-
==============================
8.내가 여기에이 솔루션을하지만 (내 경우 웹 사이트 테스트 라이브 DB에 DB에) 다른 동일 구조 테이블에서 업데이트를 찾고 있었다해서 :
내가 여기에이 솔루션을하지만 (내 경우 웹 사이트 테스트 라이브 DB에 DB에) 다른 동일 구조 테이블에서 업데이트를 찾고 있었다해서 :
INSERT live-db.table1 SELECT * FROM test-db.table1 t ON DUPLICATE KEY UPDATE ColToUpdate1 = t.ColToUpdate1, ColToUpdate2 = t.ColToUpdate2, ...
다른 곳에서 언급 한 바와 같이, 컬럼 만하면 업데이트가 필요하고 싶지는 ON DUPLICATE KEY UPDATE 뒤에 포함한다.
나는 아마 더 좋은 연습입니다 동의하지만 필요는 INSERT 또는 SELECT의 열을 나열 없습니다.
-
==============================
9.내 경우에는 내가 쿼리 아래에 만들어졌지만 첫 번째 쿼리에 ID 1이 이미 나이가 이미있는 경우, 당신은 시대의 값보다 나이가없이 첫 번째 쿼리를 작성하는 경우 아무도 없을 것입니다 후
내 경우에는 내가 쿼리 아래에 만들어졌지만 첫 번째 쿼리에 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
그것은 당신을 도울 것입니다 수 있습니다 ...
-
==============================
10.경우에, 당신은 (이름 예를 들어) 된 필드를 유지하려는. 쿼리는 다음과 같습니다
경우에, 당신은 (이름 예를 들어) 된 필드를 유지하려는. 쿼리는 다음과 같습니다
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE name=name, age=19;
-
==============================
11.
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` )
from https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-update-if-exists by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오류 MySQL의에 쿼리를 실행할 때 ONLY_FULL_GROUP_BY 관련 (0) | 2020.03.06 |
---|---|
[SQL] 어떻게 매개 변수화 된 SQL 쿼리를 만들려면 어떻게해야합니까? 왜해야 내가? (0) | 2020.03.06 |
[SQL] MySQL의 문 안에 PHP 변수를 포함하는 방법 (0) | 2020.03.06 |
[SQL] 하위 쿼리 대 가입 (0) | 2020.03.06 |
[SQL] MySQL의에서 중복 행을 제거 (0) | 2020.03.06 |