PostgreSQL输入末尾的语法错误

我在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中的错误消息非常含糊。


慕娘9325324
浏览 754回答 3
3回答

慕村225694

您尚未提供有关语言/环境的任何详细信息,但是无论如何我都会尝试一个大胆的猜测:MySQL的预处理语句本机?用作参数占位符,而PostgreSQL使用$1,$2等等。尝试替换为?,$1看看它是否有效:WHERE address = $1PostgreSQL中的错误消息非常含糊。总的来说,我发现Postgres错误消息比竞争产品(ahem,MySQL尤其是Oracle)要好,但是在这种情况下,您已经使解析器混乱不堪。:)

杨魅力

您正在使用Go吗?尝试:db.Query(`SELECT COUNT(*) as N FROM email WHERE address = $1`, email)

慕神8447489

就我而言,这是由于使用了-行注释,其中负责与数据库进行交互的程序在我的查询的多行中均读取为一条大行。这意味着该行注释破坏了查询的其余部分。解决方法是改用/ *块注释* /。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go