如何在GO中的预准备语句中使用postgresql DEFAULT关键字?

时间:2016-11-29 13:08:24

标签: postgresql go

想象一下,我有一个表t1:col1:varchar(255),col2:boolean DEFAULT true

我创建了这个准备好的声明p1:INSERT INTO t1(col1,col2) VALUES ($1,$2)

在GO中我正在执行我准备好的语句但是基于condition1我想将DEFAULT关键字传递给预准备语句中的第二个参数,即

if condition1 {
   sql.Exec(p1,"FOO","DEFAULT")  // but this returns an error:  invalid input syntax for type boolean: "DEFAULT"
} else{
  //pass other parameters to the prepared statement
}

摘要:我试图以这个sql语句结束:

INSERT INTO t1(col1,col2) VALUES ('FOO',DEFAULT) 

但我得到了这个:

INSERT INTO t1(col1,col2) VALUES ('FOO','DEFAULT')   //quotations on DEFAULT

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为这会更好,因为你已经有一个if / else检测到你没有值传递的情况,而是

INSERT INTO t1 (col1) VALUES ('FOO');

让postgres使用另一列的默认值。