postgresql UPDATE错误"错误:boolean类型的输入语法无效:"

the*_*hai 8 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...

表配置:

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

Igo*_*nko 33

尝试:

UPDATE categories 
SET epekcategoryid='27af8b1e-c0c9-4084-8304-256b2ae0c8b2',
    epekparentcategoryid='root' 
WHERE categoryId='281' 
  and siteid='0' 
  and categoryparentid='-1';
Run Code Online (Sandbox Code Playgroud)

您必须将字段SET部分用" ," 分隔,而不是用" AND" 分隔

  • @mihai如果你想的话,这并不奇怪.`AND`是一个运算符.像`+`,`-`或`*`.在`WHERE`子句中,它是'true AND false`,如`3 + 5`,但在`SET`中它变得奇怪`var1 = true AND var2 = 3`. (4认同)
  • 确实常见错误; 在`UPDATE`查询的`SET`部分内使用`AND`.给出了这样的异常错误. (2认同)