2014-10-30 3 views
1

나는 API에 의한 비즈니스 가치를 얻고 데이터베이스에 삽입하고있다.MYSQL 데이터베이스 업데이트

SNO  ID   category 
1    aaa   Machine learning 
2    aaa   AI 
3    bbb  mobile 

여기서 SNO는 자동 증가로 설정된 기본 키입니다. 2 일 후에 데이터베이스를 최신 상태로 유지하기 위해 API에서 새 데이터를 가져와야합니다. ID 'aaa'에 '데이터 구조'가 하나 더 있습니다.

질문 : 이 새로운 카테고리를 반영하도록 테이블을 업데이트하려면 어떻게해야합니까? 나는 그들이 자동 증가합니다 나는이 SNO를 모르는

SNO  ID   category 
1    aaa   Machine learning 
2    aaa   AI 
3    bbb  mobile 
4    aaa   data structures 

같은 것을 기대하고있다. ID = "aaa"인 모든 행을 삭제 한 다음 다시 삽입하는 것도 하나의 옵션이지만 오버 헤드가 증가 할 수 있으므로 피하려고합니다. 내가 사용하는 경우 나는 API에서 새 값을 얻고있다

그래서 무엇입니까 기계 학습, 인공 지능 및 데이터 구조

는 (3) , 내 코드에서, 그래서 나는 범주 변수 3 SQL을 반복 할 때 이 경우 1 차 및 2 차 삽입 문이 중복됩니다에
INSERT INTO tablename (ID, category) VALUES ('aaa', ‘Machine learning’); 
INSERT INTO tablename (ID, category) VALUES ('aaa', ‘AI’); 
INSERT INTO tablename (ID, category) VALUES ('aaa', 'data structures'); 

을 생성 할 수 있도록, 내 표는 중복 행 있을 것이다. .

나는 기본적으로 ID 및 카테고리들이 다음 삽입하지 않으면? (기본 키 SNO가 자동 증가로 설정 됨) BD에있는 경우 그냥 "새로운를 삽입하는 경우

+ Options      

Field Type Null Key Default Extra 
uuid varchar(50) NO  NULL   
categoryName varchar(50) NO  NULL   
sno int(5) NO PRI NULL   
+0

그것은 비표준 구문, MySQL을 지원 병합을 보인다하여 새 행; http://mechanics.flite.com/blog/2013/09/30/how-to-do-an-upsert-in-mysql/ – okaram

+0

간단한 INSERT 문을 사용하지 않는 이유는 무엇입니까? –

답변

2

확인해야 데이터 구조 "행을 추가하면 자동으로 증가하는 다음 번 번호가 표시됩니다.이 경우 4 일 것입니다. 4가 아닌 유일한 시간은 일부 행을 삽입하여 삭제 한 경우 자동 증분 카운터 높을수록 좋습니다. 당신은이 같은 행 삽입 할 수 : TABLENAME (ID, 카테고리) VALUES ('AAA', '데이터 구조') INTO

INSERT를;

아니면 질문을 올바르게 이해하지 못하고 있습니다. 회신하지 않으면 다시 도와 드리겠습니다.

+0

API에서 새로운 값을 얻고 있습니다. 기계 학습, 인공 지능 및 데이터 구조 (모두 3 개) 클래스 변수 3을 반복 할 때 코드에서 사용하면 SQL이 생성됩니다. 삽입 INTO 테이블 이름 (ID, 카테고리) VALUES ('aaa', 'Machine learning'); INSERT INTO tablename (ID, 카테고리) VALUES ('aaa', 'AI'); INSERT INTO tablename (ID, 카테고리) VALUES ('aaa', '데이터 구조'); 이 경우 첫 번째와 두 번째 삽입 문이 복제되고 내 테이블에 중복 행이 생깁니다 – Yahoo

+1

아마도 사용중인 API에 대해 더 알고 있어야합니다. 그러나 몇 가지 옵션이 있습니다. 테이블을 쿼리하여 행이 이미 있는지 확인할 수 있습니다 (SELECT FROM tablename WHERE ID = 'aaa'AND category = '데이터 구조'). 일치하는 것이 없으면 삽입하십시오. API 작동 방식에 대한 자세한 내용을 게시하면 더 나은 솔루션을 찾을 수 있습니다. –

+0

예, 데이터베이스에 있는지, 존재하지 않는지를 확인해야합니다. SQL은 어떻게 생겼을까요? INSERT ON DUPLICATE KEY는 기본 키를 고려합니까? 내 기본 키는 비즈니스 ID가 아닌 SNO입니다. – Yahoo

관련 문제