Ответ 1
Возможно, вы забыли добавить ";
" после этой строки кода:
`quantity` INT NOT NULL)
Я продолжаю получать эту ошибку:
MySQL сказал: # 1064 - У вас есть ошибка в синтаксисе SQL; проверить руководство что соответствует вашему серверу MySQL версии для правильного синтаксиса для использования рядом 'INSERT INTO books.book(isbn10, ISBN13, название, издание, 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)
В моем случае у меня была такая же ошибка, и позже я узнал, что условие - это ключевое слово mysql reserved, и я использовал это как имя поля.
Иногда, когда ваша таблица имеет аналогичное имя для имени базы данных, вы должны использовать обратный тик. поэтому вместо:
INSERT INTO books.book(field1, field2) VALUES ('value1', 'value2');
У вас должно получиться следующее:
INSERT INTO `books`.`book`(`field1`, `field2`) VALUES ('value1', 'value2');
Сначала вам нужно добавить запятую (;) после quantity INT NOT NULL)
затем удалите ** из ,genre,quantity)**
.
для вставки значения с числовым типом данных типа int, decimal, float и т.д. вам не нужно добавлять одиночную кавычку.