我正在使用带有 PDO 的Postgresql和PHP 5.3.x来访问数据库。
我有这个 SQL 查询(精简版),带有 PDO 的占位符来填写:
INSERT INTO t_articles (a_article_id) VALUES (?) RETURNING a_id
我想a_article_id
成为一个数字,比如5
,否则它应该是子查询的结果:
((SELECT max(a_article_id) FROM t_articles) + 1)
但是,PDO 说:
SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "(SELECT max(a_article_id) FROM t_articles) + 1"
而且我尝试将子查询设置为默认值,但显然不允许这样做:
ERROR: cannot use sub query in default expression
如何插入此子查询的结果(或者可以做些什么来获得相同的结果)?