2010-04-24 17 views
14

Wciąż otrzymuję ten błąd:MySQL Error # 1064

MySQL said: #1064 - 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 'INSERT INTO books.book(isbn10,isbn13,title,edition,author_f_name,author_m_na' at line 15

z tego zapytania:

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'); 

Każdy pomysł na czym polega problem?

+8

Nie lubisz super-pomocnych komunikatów o błędach mySQL? Ten stary zegar cofa się do czasów "IEH407I Probable Programmer Error", który był rozmową OS/360 dla "eh?" –

+3

@Ollie, te błędy są jak ciernie na różę. – Anthony

+0

Nawiasem mówiąc, na ogół obserwuj również słowa zastrzeżone w nazwach tabel lub kolumn. To był problem, który doprowadził mnie tutaj do tej samej wiadomości (ponieważ nie było "oczywistym" zastrzeżonym słowem). – atas

Odpowiedz

25

może zapomniałeś dodać „;” po tej linii kodu:

`quantity` INT NOT NULL) 
+7

+1 Miałeś rację. Zadziałało. Jestem zmęczony. Dzięki – Anthony

+2

serdecznie zapraszamy :) trochę odpocząć – Puaka

3

W moim przypadku miałem ten sam błąd, a później przyszedł wiedzieć, że „stan” jest mysql zastrzeżone słowo kluczowe i użyłem go jako nazwy pola.

0

Czasami, gdy tabela ma podobną nazwę jak nazwa bazy danych, należy użyć przycisku Wstecz. więc zamiast:

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

Trzeba to:

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

Najpierw trzeba dodać pół dwukropek (;) po quantity INT NOT NULL) następnie usunąć ** od ,genre,quantity)**. , aby wstawić wartość o typie danych numerycznych, takim jak int, dziesiętne, zmiennoprzecinkowe itp., Nie trzeba dodawać pojedynczego cudzysłowu.

Powiązane problemy