2012-11-21 29 views
5

Postgresql'de basit bir güncelleştirme sorgusu oluşturmaya çalışıyorum. Boole değeri veya sütun türü olmadığından hatayı anlamadım.postgresql UPDATE hatası "HATA: type boolean için geçersiz giriş sözdizimi:"

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... 

tablo yapılandırma:

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

'WHERE categoryId = '281' ve siteid = 0 ve kategorik arentid = '- 1'; ' – wildplasser

+0

UPDATE kategorileri SET epekcategoryid = '27af8b' ve epekparentcategoryid = 'root' WHERE categoryId = '281' ve siteid = 0 ve categoryparentid = '- 1'; ya da – themihai

cevap

21

Dene: Sen "AND" ile, "," ile SET kısmen alanları ayırmak gerekir

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

İşte günlüğüdür

+2

ortak hata çalışmıyor; 'UP'' UPDATE' sorgusunun 'SET' kısmının içinde kullanılır. Bunun gibi sıra dışı hatalar verir. – pyrocumulus

+0

mysql kötü öğretmen oldu :) ama SET sonra "VE" kullanmıyoruz biraz garip ama biz "WHERE" sonra kullanın – themihai

+4

@mihai Eğer bu konuda düşünürseniz, garip değil. AND 'bir operatördür. '+', '-' veya' * 'gibi. 'WHERE' maddesinde 'true' ve 'false' '3 + 5' gibi, ama' SET'de 'garip' var1 = true AND var2 = 3' olur. –

İlgili konular