2010-04-24 17 views
14

me siguen dando este error: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

con esta consulta:

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

Cualquier idea de lo que es el problema?

+8

¿No te encantan los mensajes de error mySQL súper útiles? Este viejo temporizador se remonta a los días del "Probable error del programador IEH407I", que fue OS/360 para "eh?" –

+3

@Ollie, estos errores son como las espinas de una rosa. – Anthony

+0

Por cierto, en general, vea también las palabras reservadas en los nombres de su tabla o columna. Este fue el problema que me trajo aquí para el mismo mensaje (porque no era una palabra reservada 'obvia'). – atas

Respuesta

25

Quizás olvidó añadir ";" después de esta línea de código:

`quantity` INT NOT NULL) 
+7

+1 Tenías razón. Funcionó. Estoy cansado. Gracias – Anthony

+2

de nada :) descansa un poco – Puaka

3

En mi caso yo estaba teniendo el mismo error y más tarde llego a saber que el 'condición' es MySQL Reservados palabra clave y lo usé como nombre de campo.

0

A veces, cuando su tabla tiene un nombre similar al nombre de la base de datos, debe utilizar la tecla Atrás. así que en vez de:

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

Usted debe tener presente:

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

En primer lugar es necesario añadir punto y coma (;) después quantity INT NOT NULL) luego retire ** de ,genre,quantity)**. para insertar un valor con tipo de datos numéricos como int, decimal, float, etc. no necesita agregar comillas simples.