code

오류 1064(42000):SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 올바른 구문을 사용할 수 있는지 확인하십시오.

starcafe 2023. 8. 16. 22:31
반응형

오류 1064(42000):SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 올바른 구문을 사용할 수 있는지 확인하십시오.

테이블에 행을 삽입하는 동안 다음 오류가 발생합니다.

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 ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1

저 좀 도와주세요.

mysql> desc risks;
+-----------------+--------------+------+-----+---------------------+----------------+
| Field           | Type         | Null | Key | Default             | Extra          |
+-----------------+--------------+------+-----+---------------------+----------------+
| id              | int(11)      | NO   | PRI | NULL                | auto_increment |
| status          | varchar(20)  | NO   |     | NULL                |                |
| subject         | varchar(100) | NO   |     | NULL                |                |
| reference_id    | varchar(20)  | NO   |     |                     |                |
| location        | int(11)      | NO   |     | NULL                |                |
| category        | int(11)      | NO   |     | NULL                |                |
| team            | int(11)      | NO   |     | NULL                |                |
| technology      | int(11)      | NO   |     | NULL                |                |
| owner           | int(11)      | NO   |     | NULL                |                |
| manager         | int(11)      | NO   |     | NULL                |                |
| assessment      | longtext     | NO   |     | NULL                |                |
| notes           | longtext     | NO   |     | NULL                |                |
| submission_date | timestamp    | NO   |     | CURRENT_TIMESTAMP   |                |
| last_update     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| review_date     | timestamp    | NO   |     | 0000-00-00 00:00:00 |                |
| mitigation_id   | int(11)      | NO   |     | NULL                |                |
| mgmt_review     | int(11)      | NO   |     | NULL                |                |
| project_id      | int(11)      | NO   |     | 0                   |                |
| close_id        | int(11)      | NO   |     | NULL                |                |
| submitted_by    | int(11)      | NO   |     | 1                   |                |
| filename        | varchar(30)  | NO   |     | NULL                |                |
+-----------------+--------------+------+-----+---------------------+----------------+
21 rows in set (0.00 sec)

**mysql> INSERT INTO risks (`status`, `subject`, `reference_id`, `location`, `category`,
`team`, `technology`, `owner`, `manager`, `assessment`, `notes`,'filename')     VALUES 
('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');**

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 ''filename') 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','sant' at line 1

MySQL에는 두 가지 유형의 따옴표가 있습니다.열 이름에는 '를, 문자열에는 '를 사용해야 합니다.파일 이름 열에 '를 사용했기 때문에 쿼리 파서가 혼동되었습니다.모든 열 이름 주위의 따옴표를 제거하거나 'filename'을 'filename'으로 변경합니다.그러면 효과가 있을 겁니다.

열 파일 이름을 따옴표로 묶지 않음

mysql> INSERT INTO risks (status, subject, reference_id, location, category, team,    technology, owner, manager, assessment, notes,filename) 
VALUES ('san', 'ss', 1, 1, 1, 1, 2, 1, 1, 'sment', 'notes','santu');

이 오류는 당신이 project1용 데이터베이스를 가지고 있는 것처럼 동일한 테이블이 2개의 데이터베이스에 존재하기 때문에 발생합니다. 그리고 당신이 tableemp를 가지고 있고 당신이 project2와 같은 다른 데이터베이스를 가지고 있고 당신이 tableemp를 가지고 있다면 당신은 당신의 데이터베이스 이름 없이 데이터베이스 안에 무언가를 삽입하려고 할 때 다음과 같은 오류가 발생할 것입니다.

mysql 쿼리를 사용할 때 해결책은 테이블 이름과 함께 데이터베이스 이름도 언급합니다.

OR

KEY와 같은 예약된 키워드를 열 이름으로 사용하지 않음

이 오류는 MySQL 키워드 중 하나인 열이 있을 때 발생합니다.모든 열 이름을 뒤 눈금으로 표시하여 쿼리를 실행해 보십시오.예:

insert into test (`sno`, `order`, `category`, `samp`, `pamp`, `method`) values(1, 1, 'top', 30, 25, 'Total');

열 이름order는 MySQL의 키워드이기 때문에 저는 그것을 ''따옴표''에 넣어야 했습니다.

C:\xampp>mysql -u root -p mydatabase < C:\DB_Backups\stage-new.sql
Enter password:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear 'stage-new.sql

----lot of space----

' at line 1

그 이유는 다음 명령어를 사용한 DB를 버렸을 때였습니다.

mysqldump -h <host> -u <username> -p <database> > dumpfile.sql
dumpfile.sql

실수로 인한 덤프 파일입니다.sql이 구문에 두 번 추가되었습니다.

솔루션: 덤프 파일을 제거했습니다.내보낸 덤프 파일의 첫 번째 줄에 sql 텍스트가 추가되었습니다.

아래 코드를 command.sql로 저장합니다.

USE restaurant
TRUNCATE `orders`;
TRUNCATE `order_items`;

그럼 실행

mysql -u root <comands.sql> output.tab

이 솔루션은 윈도우즈용입니다.

  1. 관리자 모드에서 명령 프롬프트를 엽니다.
  2. 경로로 이동: C:\Program Files\MySQL\MySQL 서버 5.6\bin
  3. 아래 명령어로 실행: mysqdump -h 127.0.01 -u root -root db table1 table2 > result.sql

다음과 같은 오류가 발생했습니다. 오류 1064(42000):SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 1행의 ', 완료됨' 근처에서 사용할 구문을 확인하십시오.

이것이 터미널에서 입력한 입력입니다: mysql> 작업관리 테이블 만들기(설명, 완료됨);

솔루션: 각 열 유형에 대해 포함할 내용 유형을 지정해야 합니다.텍스트, 정수, 변수, 부울 등 다양한 유형의 데이터가 있을 수 있습니다.

mysql > 테이블 작업관리 작성(설명 텍스트, 완료된 부울);

쿼리 정상, 영향을 받는 행 수 0개(0.02초)

이제 성공적으로 통과했습니다.

제 경우 아래의 값이 sql 덤프 파일에 처음 작성되었습니다(여러 줄).

-- SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '33ce20a2-ad12-11ec-bdac-3238639baa41:1-9133,
7dd21400-4a0f-11ec-a3f9-aa2aaded1a97:1-5031,
a8ffc1f8-6888-11eb-9a01-3671a0dcaa62:1-9355,
dce51f13-7f37-11ea-9882-627116a92c36:1-6177,
f1115a53-0a94-11ed-8ccd-923c66acbd99:1-1584';

모든 것을 한 줄로 만든 후 고정:

*-- SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '33ce20a2-ad12-11ec-bdac-3238639baa41:1-9133,7dd21400-4a0f-11ec-a3f9-aa2aaded1a97:1-5031,a8ffc1f8-6888-11eb-9a01-3671a0dcaa62:1-9355,dce51f13-7f37-11ea-9882-627116a92c36:1-6177,f1115a53-0a94-11ed-8ccd-923c66acbd99:1-1584';*

사실 그 문제는 두 가지 방법으로 해결할 수 있습니다.

1. SQL이 일부 단어를 문제를 해결할 키워드로 간주하므로 파일 이름을 다른 단어로 변경합니다. 2.단순히 인용문 스타일을 ''(이 경우)로 변경하십시오. 하지만 장기적으로는 첫 번째 옵션이 더 좋습니다.

그게 도움이 되길 바랍니다!!

CREATE TABLE information (
 id INT(11) NOT NULL AUTO_INCREMENT,
 name VARCHAR(30) NOT NULL,
 age INT(10) NOT NULL,
 salary INT(100) NOT NULL,
 address VARCHAR(100) NOT NULL,
 PRIMARY KEY(id)
 );

오류 1064(42000):SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 ' <

수 : 하기 쉽게해수 있할매는간우단질문한변:경결변▁very▁that.<(그리고.>;);

그냥 사용:

( 
               
          
       
);
CREATE TABLE information (
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> name VARCHAR(30) NOT NULL,
-> age INT(10) NOT NULL,
-> salary INT(100) NOT NULL,
-> address VARCHAR(100) NOT NULL,
-> PRIMARY KEY(id)
-> );

터미널에서 덤프 쿼리를 실행하면 작동합니다.

mysql -u root -p  <Database_Name> > <path of the input file>

언급URL : https://stackoverflow.com/questions/22009582/error-1064-42000-you-have-an-error-in-your-sql-syntax-check-the-manual-that

반응형