首页 > 解决方案 > Postgresql ODBC 错误:'on' 附近的语法不正确

问题描述

我有一个适用于 pgAdmin 控制台的 PostgreSQL 9.6.6 查询。原始查询如下所示:

insert into "UsageTable" ("ID", "Name", "Count", "Start", "End", "Offset")
values('test account' , 'test name' , '30' , '5/17/2018 12:00:00 AM' , '5/18/2018 12:00:00 AM' , '0' )
on conflict ("ID", "Name", "Start", "End") 
DO UPDATE SET "Count" = Excluded."Count" + "UsageTable"."Count";

现在我可以使用我的 c# 代码连接到 PostgreSQL。但是,我不断收到此命令的错误“{“ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]'on' 附近的语法不正确。”}'

这是 C# 代码中的查询

sql = @"INSERT INTO ""UsageTable"" (""ID"", ""Name"", ""Count"", ""Start"", ""End"", 
""Offset"")                   
VALUES('test account' , 'test name' , '30' , '5/17/2018 12:00:00 AM' , 
'5/18/2018 12:00:00 AM' , '0') 
[ON] CONFLICT (""ID"", ""Name"", ""Start"", ""End"") 
DO UPDATE SET ""Count"" = Excluded.""Count"" + ""UsageTable"".""Count""";


   MakeRetriableOperation().Invoke(cmd =>
            {
                cmd.CommandText = sql;

                cmd.ExecuteNonQuery();
            });

我已经尝试了不带括号的查询,只是“ON CONFLICT”,但我收到一个关于它是关键字的错误

标签: c#sqlpostgresqlodbc

解决方案


推荐阅读