我在MySQL和PostgreSQL中都使用了下一条SQL语句,但是在PostgreSQL中却失败了db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)出现此错误:pq: F:"scan.l" M:"syntax error at end of input" S:"ERROR" C:"42601" P:"50" R:"scanner_yyerror" L:"993"有什么问题?PostgreSQL中的错误消息非常含糊。
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
您尚未提供有关语言/环境的任何详细信息,但是无论如何我都会尝试一个大胆的猜测:
MySQL的预处理语句本机?
用作参数占位符,而PostgreSQL使用$1
,$2
等等。尝试替换为?
,$1
看看它是否有效:
WHERE address = $1
PostgreSQL中的错误消息非常含糊。
总的来说,我发现Postgres错误消息比竞争产品(ahem,MySQL尤其是Oracle)要好,但是在这种情况下,您已经使解析器混乱不堪。:)
杨魅力
TA贡献1811条经验 获得超6个赞
您正在使用Go吗?
尝试:
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = $1`, email)
慕神8447489
TA贡献1780条经验 获得超1个赞
就我而言,这是由于使用了-行注释,其中负责与数据库进行交互的程序在我的查询的多行中均读取为一条大行。这意味着该行注释破坏了查询的其余部分。解决方法是改用/ *块注释* /。
- 3 回答
- 0 关注
- 753 浏览
添加回答
举报
0/150
提交
取消