[DB] MySQL Error Code: 1064. You have an error in your SQL syntax;

jiyoung·2023년 1월 11일
0
post-thumbnail

🤔상황


-더미 데이터를 만들기 위해 for문을 돌려서 랜덤으로 이름을 생성하려고 함(이름은 무조건 세 글자로 가정)
-first_name에서 한 글자 last_name에서 두 글자를 추출하려고 하니까 last_name 부분이 리스트로 출력돼서 그냥 첫글자(first_name)+가운데글자(last_name)+마지막글자(last_name)를 추출하여 붙이기로 함


그랬더니 발생한 오류는 위와 같았다.

📝오류 코드

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

🗝️해결 방법


처음에 두 글자를 추출하려고 random.choices라고 썼던 것을 수정하지 않아서 오류가 발생한 듯 하다. random.choice로 수정했더니 정상적으로 더미 데이터가 만들어졌고 db에도 정상적으로 들어왔다. 코드를 잘 보자...!

🔎또 다른 에러의 원인

나중을 위해 또 다른 에러의 원인을 찾아봤는데 에러의 원인은 크게 4가지였다.

예약어 사용

[잘못된 예]

CREATE TABLE ALTER

[올바른 예]

CREATE TABLE 'ALTER'

ALTER는 예약어 이므로 ''로 표시해야한다. 혹시 구문중에 컬럼이나 변수, 값에 예약어가 들어가있는지 확인해보자!

누락된 데이터

SELECT * from students WHERE studentID = $id

id값이 없거나 정의하지 않은 경우, studentID이라는 데이터, 컬럼이 존재 하지 않는 경우

명령의 불일치

[잘못된 예]

SELECT * form students;

[올바른 예]

SELECT * from students;

1064 오류의 가장 일반적인 원인 중 하나로 SQL문이 잘못 입력 된 명령을 사용하는 경우로 구문에서 SQL문 오타를 자세히 살펴보자!

더 이상 사용되지 않는 명령어

명령문이 더 이상 SQL 문에서 유효하지 않음을 의미한다. 즉, SQL의 버전에 따라 명령어가 다르고, 사용하는 프로그램마다 다르다.


[참고자료]

0개의 댓글