2012-11-21 13 views
5

मैं postgresql पर एक साधारण अद्यतन क्वेरी बनाने की कोशिश कर रहा हूं। मैं वास्तव में त्रुटि को समझ नहीं पा रहा हूं क्योंकि कोई बूलियन मान या कॉलम प्रकार नहीं है।postgresql अद्यतन त्रुटि "त्रुटि: प्रकार बूलियन के लिए अमान्य इनपुट वाक्यविन्यास:"

cat=> UPDATE categories SET epekcategoryid='27af8b1e-c0c9-4084-8304-256b2ae0c8b2' and epekparentcategoryid='root' WHERE categoryId='281' and siteid='0' and categoryparentid='-1'; 
ERROR: invalid input syntax for type boolean: "27af8b1e-c0c9-4084-8304-256b2ae0c8b2" 
LINE 1: UPDATE categories SET epekcategoryid='27af8b1e-c0c9-4084-830... 

तालिका config:

cat=> \d categories; 
       Table "public.categories" 
     Column  |   Type   | Modifiers 
----------------------+-----------------------+----------- 
categoryid   | character varying(32) | 
categoryname   | text     | 
siteid    | integer    | 
categoryparentid  | character varying(32) | 
status    | integer    | default 0 
epekcategoryid  | text     | 
epekparentcategoryid | text     | 
categorylevel  | character varying(37) | 
categoryidpath  | character varying(37) |
+0

'कहां श्रेणी आईडी =' 281 'और साइटिड = 0 और श्रेणीपी arentid = '- 1'; ' – wildplasser

+0

अद्यतन श्रेणियां SET epekcategoryid = '27af8b' और epekparentcategoryid = 'root' जहां श्रेणी आईडी = '281' और साइटिड = 0 और categoryparentid = '- 1'; – themihai

उत्तर

21

प्रयास करें:

UPDATE categories 
SET epekcategoryid='27af8b1e-c0c9-4084-8304-256b2ae0c8b2', 
    epekparentcategoryid='root' 
WHERE categoryId='281' 
    and siteid='0' 
    and categoryparentid='-1'; 

आप "," के साथ SET भाग में क्षेत्रों को अलग करना होगा, "AND" नहीं के साथ यहाँ लॉग है

+2

वास्तव में काम नहीं कर रहा है; 'UPDATE' क्वेरी के' SET' भाग के अंदर 'AND' का उपयोग करना। इस तरह असामान्य त्रुटियां देता है। – pyrocumulus

+0

mysql खराब शिक्षक था :) हालांकि थोड़ा अजीब है कि हम एसईटी के बाद "AND" का उपयोग नहीं करते हैं, लेकिन हम "WHERE" – themihai

+4

@ मिहाई के बाद उपयोग करते हैं, अगर आप इसके बारे में सोचते हैं तो यह अजीब नहीं है। 'AND' एक ऑपरेटर है। '+', '-' या' * 'की तरह। 'WHERE' खंड में यह '3 + 5' की तरह 'सत्य और गलत' है, लेकिन' SET' में यह अजीब 'var1 = true और var2 = 3' बन जाता है। –

संबंधित मुद्दे

 संबंधित मुद्दे