web-dev-qa-db-ja.com

MySQlエラー#1064

このエラーが発生し続けます:

MySQLのコメント:#1064-SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルで、 'INSERT INTO books.book(isbn10、isbn13、title、edition、author_f_name、author_m_na'の行15

このクエリでは:

USE books;

DROP TABLE IF EXISTS book;


    CREATE TABLE `books`.`book`(
    `book_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `isbn10` VARCHAR(15) NOT NULL,
    `isbn13` VARCHAR(15) NOT NULL,
    `title` VARCHAR(50) NOT NULL,
    `edition` VARCHAR(50) NOT NULL,
    `author_f_name` VARCHAR(50) NOT NULL,
    `author_m_name` VARCHAR(50) NOT NULL,
    `author_l_name` VARCHAR(50) NOT NULL,
    `cond` ENUM('as new','very good','good','fair','poor') NOT NULL,
    `price` DECIMAL(8,2) NOT NULL,
    `genre` VARCHAR(50) NOT NULL,
    `quantity` INT NOT NULL)

    INSERT INTO books.book(isbn10,isbn13,title,edition,author_f_name,author_m_name,author_l_name,cond,price,genre,quantity)** 
    VALUES ('0136061699','978-0136061694','Software Engineering: Theory and Practice','4','Shari','Lawrence','Pfleeger','very good','50','Computing','2');

問題が何か分かりますか?

15
Anthony

; "このコード行の後:

`quantity` INT NOT NULL)
26
Puaka

私の場合、同じエラーが発生していましたが、後で 'condition'がmysqlの予約キーワードであることがわかり、それをフィールド名として使用しました。

3
KK2019

最初に、quantity INT NOT NULL)の後にセミコロン(;)を追加し、,genre,quantity)**から**を削除する必要があります。 int、decimal、floatなどの数値データ型の値を挿入するには、一重引用符を追加する必要はありません。

0
Exp3rt

テーブルの名前がデータベース名と似ている場合は、バックティックを使用する必要があります。代わりに:

INSERT INTO books.book(field1, field2) VALUES ('value1', 'value2');

これが必要です:

INSERT INTO `books`.`book`(`field1`, `field2`) VALUES ('value1', 'value2');
0
Joseph Rex