SQL error

gyubo·2023년 9월 18일
0

INSERT INTO testwith.company_info (company_id, company_name) VALUES ('test1234', 'daekyo_ttest') ON DUPLICATE KEY UPDATE company_name = VALUES('daekyo_ttest');

위 쿼리문은 testwith.company_info 에 데이터를 입력하는데, company_id가 test1234것이 없으면 company_id = 'test1234', company_name = 'daekyo_ttest'로 데이터를 넣고, 만약 company_id가 test1234것이 있으면 company_id가 test1234것의 company_name을 'daekyo_ttest'로 업데이트 하느 ㄴ쿼리가 맞나요?

ChatGPT
네, 주어진 SQL 쿼리문은 "testwith.company_info" 테이블에 데이터를 입력하거나 업데이트하는 쿼리로 올바릅니다. 이 쿼리의 작동 방식은 다음과 같습니다:

먼저 "test1234"라는 company_id가 "testwith.company_info" 테이블에 있는지 확인합니다.

만약 "test1234"라는 company_id가 테이블에 존재하지 않으면, 새로운 레코드를 삽입합니다. company_id는 'test1234'이고 company_name은 'daekyo_ttest'가 됩니다.

만약 "test1234"라는 company_id가 이미 테이블에 존재한다면, 해당 레코드의 company_name 값을 'daekyo_ttest'로 업데이트합니다.

이 쿼리는 "INSERT INTO ... ON DUPLICATE KEY UPDATE" 문법을 사용하여 중복된 company_id에 대한 처리를 수행합니다. 따라서 데이터베이스에 "test1234"라는 company_id가 이미 있는 경우에도 업데이트 작업을 수행합니다.

User
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"daekyo_ttest")' at line 1
위 에러는 무슨 에러인가요
ChatGPT
주어진 오류 메시지 "Error Code: 1064"는 MySQL에서 발생한 SQL 문법 오류를 나타냅니다. 이 경우 오류는 SQL 쿼리 문법에서 발생한 문제로, "daekyo_ttest"와 같은 이중따옴표(")로 둘러싸인 문자열이 문제입니다.

MySQL에서 문자열을 감싸는 데는 홑따옴표(')를 사용해야 합니다. 따라서 올바른 SQL 쿼리는 다음과 같이 수정되어야 합니다:

sql
Copy code
INSERT INTO testwith.company_info (company_id, company_name) VALUES ('test1234', 'daekyo_ttest') ON DUPLICATE KEY UPDATE company_name = VALUES('daekyo_ttest');
여기서 문자열 값인 'test1234'와 'daekyo_ttest'는 홑따옴표로 둘러싸여 있으므로 SQL 문법 오류가 발생하지 않습니다. 이렇게 수정한 쿼리를 실행하면 문제가 없이 작동할 것입니다.

profile
개린이

0개의 댓글