반응형
Mariadb 구문 오류 1064(42000)
따라서 MariaDB에서 이 스크립트를 실행하려고 하면 다음과 같은 오류가 발생합니다.「 ERROR 1064 ( 42000 ) :SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 nears에서 사용할 올바른 구문을 확인하십시오.
CREATE TABLE customers (
customer_id int NOT NULL,
customer_f
1행에서
이상한 점은 MariaDB가 명령어의 첫 번째 줄을 읽고 다음 줄의 몇 줄을 1줄로 읽는 것처럼 보인다는 것입니다.전체 스크립트는 아래와 같습니다.누구라도 도와주시면 감사하겠습니다.
DROP TABLE customers;
DROP TABLE orders;
DROP TABLE products;
DROP TABLE orderitem;
CREATE TABLE customers (
customer_id INT NOT NULL AUTO_INCREMENT,
customer_firstname VARCHAR(20) NOT NULL,
customer_lastname VARCHAR(40) NOT NULL,
customer_phone CHAR(10) NOT NULL,
customer_email VARCHAR(60) NOT NULL,
customer_address VARCHAR(40) NOT NULL,
customer_city VARCHAR(40) NOT NULL,
customer_state CHAR(2) NOT NULL,
customer_zip VARCHAR(10) NOT NULL,
customer_aptnum VARCHAR(5) NOT NULL,
customer_pass CHAR(40) NOT NULL,
customer_type VARCHAR(10) NOT NULL,
PRIMARY KEY (customer_id),
INDEX customer_fullname (customer_firstname, customer_lastname),
UNIQUE (customer_email)
);
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT,
order_datetime DATETIME NOT NULL,
order_trackingnumber VARCHAR(20) NOT NULL,
order_shipdate DATETIME NOT NULL,
order_shipmethod VARCHAR(10) NOT NULL,
order_shipcarrier VARCHAR(10) NOT NULL,
order_totalprice DECIMAL,
customer_id INT NOT NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
UNIQUE (order_trackingnumber)
);
CREATE TABLE products (
product_id VARCHAR(30) NOT NULL AUTO_INCREMENT,
product_beginningstockdate DATETIME NOT NULL,
product_endstockdate DATETIME,
product_category VARCHAR(15) NOT NULL,
product_name VARCHAR(60) NOT NULL,
product_availablequantity SMALLINT NOT NULL,
product_totalquantity SMALLINT NOT NULL,
product_price DECIMAL NOT NULL,
product_taxable DECIMAL NOT NULL,
product_itemstatus VARCHAR(15) NOT NULL,
product_discountpercent DECIMAL,
product_soldinstore char(3),
product_soldonwebsite char(3),
PRIMARY KEY (product_id),
UNIQUE (product_name)
);
/*INSERT INTO products (product_description, product_beginningstockdate, product_endstockdate, product_category, product_name, product_availablequantity, product_totalquantity, product_price, product_taxable, product_itemstatus, product_discountpercent, product_soldinstore, product_soldonwebsite)
VALUES
(...),
(...),
........ */
CREATE TABLE orderitem (
orderitem_id INT NOT NULL AUTO_INCREMENT,
order_id INT NOT NULL,
product_id VARCHAR(30) NOT NULL,
orderitem_priceperunit DECIMAL NOT NULL,
orderitem_quantityordered TINYINT NOT NULL,
PRIMARY KEY (orderitem_id),
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (product_id) REFERENCES orders(product_id)
);
코드를 복사하여 NotePad++에 붙여넣은 후 16진 에디터로 표시하면 다음과 같이 표시됩니다.80 8b 0a
각 문장의 빈 행에 표시해 주세요.
이 바이트 시퀀스는 UTF-8 인코딩 형식의 제로 폭 스페이스 문자입니다.
그것들을 삭제해 주세요.그러면 동작합니다.
(NotePad++와 16진수 에디터 플러그인을 사용하는 경우 16진수 뷰에서 간단히 대체할 수 있습니다.e2 80 8b
빈 끈으로.그렇지 않은 경우 다른 텍스트에디터에서는 이전 행의 마지막 행으로 이동하여 빈 행에서 다음 행의 시작까지 모든 항목을 선택한 후 Enter 키를 눌러 선택 항목을 바꿉니다.)
저도 비슷한 좌절감을 느꼈고, 제 절차에서 구분 기호를 변경해야 한다는 것을 깨달았습니다.아마 여기도 효과가 있을 거예요.
DELIMITER //
CREATE PROCEDURE
....
BEGIN
END //
DELIMITER ;
언급URL : https://stackoverflow.com/questions/36526950/mariadb-syntax-error-1064-42000
반응형
'programing' 카테고리의 다른 글
Oracle에서 MariaDB에서 쿼리 실행 (0) | 2022.10.25 |
---|---|
Ajax를 사용하여 데이터와 파일을 한 형태로 업로드하시겠습니까? (0) | 2022.10.25 |
MySQL 데이터베이스에서 권한 제거 (0) | 2022.10.25 |
Django 오류: _mysql이라는 이름의 모듈이 없습니다. (0) | 2022.10.25 |
배열에서 요소를 랜덤으로 선택하는 방법 (0) | 2022.10.15 |