我有一个可以在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。但是我不断收到错误' {"错误[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]错误的语法在'附近'。"}& #39;这个命令
这是c#code
中的查询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'但我得到一个关于它是关键字的错误