이러한 종류의 오류는 잘못된 구문을 사용할 때 발생합니다. 테이블을 생성했는데 동일한 오류 "1054"가 발생하는 예를 살펴보겠습니다.
다음은 표입니다 -
mysql> create table DemoTable689( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(100), UserLoginDate date(100) NOT NULL );
이것은 다음과 같은 출력을 생성합니다. 즉, 잘못된 구문 사용에 대한 오류 -
ERROR 1064 (42000): 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 '(100) NOT NULL )' at line 5
이제 오류 1054를 수정하겠습니다. 이를 위해서는 DATE NOT NULL만 사용해야 합니다. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable689( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserName varchar(100), UserLoginDate date NOT NULL ); Query OK, 0 rows affected (0.68 sec)
삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -
mysql> insert into DemoTable689(UserName,UserLoginDate) values('John',DATE(NOW())); Query OK, 1 row affected (0.40 sec) mysql> insert into DemoTable689(UserName,UserLoginDate) values('Chris','2018-01-21'); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable689(UserName,UserLoginDate) values('Robert',CURDATE()); Query OK, 1 row affected (0.20 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select *from DemoTable689;
그러면 다음과 같은 출력이 생성됩니다. 이제 오류를 수정했습니다 -
+--------+----------+---------------+ | UserId | UserName | UserLoginDate | +--------+----------+---------------+ | 1 | John | 2019-07-21 | | 2 | Chris | 2018-01-21 | | 3 | Robert | 2019-07-21 | +--------+----------+---------------+ 3 rows in set (0.00 sec)