このエラーが発生し続けます:
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');
問題が何か分かりますか?
「;
"このコード行の後:
`quantity` INT NOT NULL)
私の場合、同じエラーが発生していましたが、後で 'condition'がmysqlの予約キーワードであることがわかり、それをフィールド名として使用しました。
最初に、quantity INT NOT NULL)
の後にセミコロン(;)を追加し、,genre,quantity)**
から**を削除する必要があります。 int、decimal、floatなどの数値データ型の値を挿入するには、一重引用符を追加する必要はありません。
テーブルの名前がデータベース名と似ている場合は、バックティックを使用する必要があります。代わりに:
INSERT INTO books.book(field1, field2) VALUES ('value1', 'value2');
これが必要です:
INSERT INTO `books`.`book`(`field1`, `field2`) VALUES ('value1', 'value2');