gpt4 book ai didi

c# - Npgsql 我得到 : 42P01: relation "sometable" does not exist

转载 作者:行者123 更新时间:2023-11-29 12:36:56 25 4
gpt4 key购买 nike

我正在尝试通过 Npgsql 运行此查询,当我直接在服务器上运行此查询时效果很好,因为我得到:查询成功返回,15 毫秒内没有结果。但是,当我使用 Npgsql 时,我得到:42P01:关系“sometable”不存在

我知道错误是在 INSERT 语句中,我是否遗漏了什么?

连接字符串:Host=192.168.137.47;Port=5432;UserId=postgres;Password=test;Database=pg_database;

        var m_createdb_cmd = new NpgsqlCommand();
m_createdb_cmd.Connection = _connPg;
m_createdb_cmd.CommandText = psSQL;
_connPg.Open();
m_createdb_cmd.ExecuteNonQuery();
_connPg.Close();

查询

BEGIN;
CREATE TABLE "sometable" (
"test" varchar(254));
INSERT INTO "sometable" ("test") VALUES ('Hello World');
COMMIT;

日志

2015-10-01 07:08:46 EDT 错误:字符 13 处不存在关系“sometable”2015-10-01 07:08:46 美国东部时间声明:插入“sometable”(“测试”)值('Hello World')

p.s.:我也看了PostgreSQL ERROR: 42P01: relation "[Table]" does not exist没有帮助

最佳答案

这是由于 Npgsql 3.x 中引入的一个已知限制 - 当在一个命令中发送多个 SQL 语句时,后面的语句不能再依赖于前面语句中创建的实体。例如,您不能创建一个表,然后在同一命令中将其插入。解决方法是简单地将建表和插入拆分为两个命令(注意这与事务无关)。

跟踪此问题的是 https://github.com/npgsql/npgsql/issues/641 .

关于c# - Npgsql 我得到 : 42P01: relation "sometable" does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32886171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com