# 문제
Define an Employees table,
with the following fields
id - number(automatically increments), mandatory, primary key
last_name - text, mandatory
first_name - text, mandatory
middle_name - text, not mandatory
age - number mandatory
current_status - text, mandatory, defaults to 'employed'
# 내 답안
CREATE TABLE employees
(
id INT NOT NULL AUTO_INCREMENT,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(50) NOT NULL,
middle_name VARCHAR(40),
age INT NOT NULL,
current_status VARCHAR(60) NOT NULL DEFAULT “employed”,
PRIMARY KEY (id)
);
하지만 이에 대해서는
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the ri ght syntax to use near '“employed”,
라는 에러문구로 진행이 안되었다.
아니 분명히 맞는것 같은데..
# 답안 코드
CREATE TABLE employees
(
id INT AUTO_INCREMENT NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
middle_name VARCHAR(255),
age INT NOT NULL,
current_status VARCHAR(255) NOT NULL DEFAULT 'employed',
PRIMARY KEY(id)
);
이건 되더라.
확실히 문법을 다시금 정리해야겠다.
# 문제 발견
에러 메세지는 employed근처에 문제가 있는것 같다고 했다.
하지만 애초에 내가 틀렸던 것이 'employed',
이렇게 싱글코테이션을 썼었는데 문법이 틀리대서 더블 코테이션으로 변경한거였는데
그래서 더블코테이션이 에러의 원인일줄은 아예 상상도 못하고 보고 또보고 50분동안 봤다.
휴... 아무튼 이런 경우는 결론적으로 DEFAULT 값을 설정할때는 싱글코테이션으로 작성하기!!!!!!!!
'개발일지 > SQL' 카테고리의 다른 글
[MAC M1 Mysql] root 비밀번호 분실 후 초기화 및 2가지 에러의 근본해결 (1) | 2022.10.03 |
---|---|
MYSQL - UNIQUE를 통한 무결성 통제 (0) | 2022.09.23 |
MYSQL 다중 INSERT, 에러 경고문 출력, 기본출력값 설정(default) (0) | 2022.09.22 |
SQL 가장 기초 명령문 - 현재 데이터베이스, 테이블 확인 (0) | 2022.09.22 |
SQL goormide 컨테이너 생성 및 mysql 실행 (1) | 2022.09.22 |