Postgresql “固定柱”;columnname";数据库中不存在pgsql。双引号与单引号错误

Postgresql “固定柱”;columnname";数据库中不存在pgsql。双引号与单引号错误,postgresql,insert,double-quotes,Postgresql,Insert,Double Quotes,我有一个表格评论(电影id、用户id、评论文本、日期、时间、喜好、状态)/ 我得到了错误 column "exist" does not exist LINE 1: INSERT INTO review values ($1, $2, $3,$4,$5 ,0,"exist") ^ ) 当我想在postgresql数据库中插入值时。我再也不能修改代码了,所以有没有办法通过修改数据库,比如添加一列来实现这一点 插入的代码如下所示: $query = $this->db->prepar

我有一个表格评论(电影id、用户id、评论文本、日期、时间、喜好、状态)/ 我得到了错误

column "exist" does not exist LINE 1: INSERT INTO review values ($1, $2, $3,$4,$5 ,0,"exist") ^ )
当我想在postgresql数据库中插入值时。我再也不能修改代码了,所以有没有办法通过修改数据库,比如添加一列来实现这一点

插入的代码如下所示:

 $query = $this->db->prepare('INSERT INTO review values (:movieid, :userid, :review,:date,:time ,0,"exist")');
 $result = $query->execute(Array(':movieid' => $movieid, ':userid' => $userid, ':review' => $review, ':date' => $date, ':time' => $time));
我知道解决这个问题的方法是在“status”列中使用单引号,但我唯一能做的就是更改数据库。

不,你不能

如果对命名列使用了正确的插入:

insert into review (column1, column2, column3) values (....)

然后,理论上可以通过添加列“exist”和触发器来实现。但这将是非常不明智的解决方案。

我尝试添加一个默认值为“exist”的列“exist”,但这不起作用,因为范围表中没有可供选择的表。(目标表“review”不在rangetable中的RHS处,因此它出现了。下一步:没有参数的函数“exist”,返回“exist”不会被解析器识别为一个没有后括号的函数。通过
调用它“exist”()
确实给出了所需的结果。好吧,我也说过要添加触发器。至于第二条评论——如果您可以将源代码更改为具有附加(),也可以将其更改为替换为“to”。是的,我意识到了这一点。但我认为不更改查询,就不可能将idenfier“exist”放入范围。(如果Postgres有数据库范围的可定义常量或宏/定义,这是可能的)