2010-04-24 3 views
14

मैं बार आ रही है इस त्रुटि:MySQL त्रुटि # 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

इस क्वेरी के साथ

:

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

किसी भी विचार क्या समस्या है?

+8

क्या सुपर-सहायक mySQL त्रुटि संदेशों को प्यार नहीं है? यह इस पुराने टाइमर को "आईईएच 407 आई संभावित प्रोग्रामर त्रुटि" के दिनों में वापस ले जाता है, जो "एह" के लिए ओएस/360 बात थी? –

+3

@ ओली, ये त्रुटियां गुलाब पर कांटे की तरह हैं। – Anthony

+0

वैसे, सामान्य रूप से, अपनी तालिका या कॉलम नामों में आरक्षित शब्दों के लिए भी देखें। यह समस्या थी जो मुझे यहां एक ही संदेश के लिए लाया (क्योंकि यह 'स्पष्ट' आरक्षित शब्द नहीं था)। – atas

उत्तर

25

हो सकता है आप कोड की इस पंक्ति के बाद ";" जोड़ने के लिए भूल गया:

`quantity` INT NOT NULL) 
+7

+1 आप सही थे। इसने काम कर दिया। मैं थक गया हूँ। धन्यवाद – Anthony

+2

आपका स्वागत है :) कुछ आराम करें – Puaka

3

मेरे मामले मैं एक ही त्रुटि हो रही थी और बाद में मुझे पता चला कि 'हालत' mysql आरक्षित है आते हैं कीवर्ड और मैंने फ़ील्ड नाम के रूप में इसका इस्तेमाल किया।

0

कभी-कभी जब आपकी तालिका का डेटाबेस नाम पर समान नाम होता है तो आपको वापस टिक का उपयोग करना चाहिए। तो बजाय:

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

आप इस होना चाहिए:

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

सबसे पहले आप अर्ध बृहदान्त्र जोड़ने की जरूरत है (;) quantity INT NOT NULL) के बाद तो ,genre,quantity)** से हटा दें **। संख्यात्मक डेटा प्रकार जैसे int, दशमलव, float, आदि के साथ कोई मान डालने के लिए आपको एकल कोट जोड़ने की आवश्यकता नहीं है।