使用 Npgsql 传递空值看起来像这样:
using (NpgsqlCommand cmd = new NpgsqlCommand("insert into foo values (:TEST)", conn))
{
cmd.Parameters.Add(new NpgsqlParameter("TEST", NpgsqlDbType.Varchar));
cmd.Parameters[0].Value = DBNull.Value;
cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常。
新的 Npgsql 4.0 文档建议使用强数据类型声明参数,如下所示:
using (NpgsqlCommand cmd = new NpgsqlCommand("insert into foo values (:TEST)", conn))
{
cmd.Parameters.Add(new NpgsqlParameter<string>("TEST", NpgsqlDbType.Varchar));
cmd.Parameters[0].Value = DBNull.Value;
cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
当传递 DBNull.Value 时,会抛出一般异常:
无法将“System.DBNull”类型的对象转换为“System.String”类型。
一切仍然适用于新的无装箱参数,但新语法似乎有意义,我们想使用它......但如何解决这种数据类型断开连接?
上面的例子是一个字符串。我认为这也会影响数字和日期。
我偶然发现了 DBeaver 中最令人惊奇的功能之一,在那里我有:
select *
from foo
Run Code Online (Sandbox Code Playgroud)
我点击了一些组合键,这些组合键变成*
了一个单独的字段名称列表:
select field1, field2, field3, field4
from foo
Run Code Online (Sandbox Code Playgroud)
问题是无论我尝试什么,我都无法重复它,而且我找不到有关该功能的任何文档。
如果有人知道完成这项工作的组合键,请告诉我。
我正在阅读 PostgreSQL 中的 BRIN 索引,它似乎对我们使用的许多表都有好处。
也就是说,它很好地适用于已经是主键的列,在这种情况下,添加单独的索引将抵消索引的部分好处,即节省空间。
PK 是隐式索引的,不是吗?关于这一点,假设 Btree 也是隐式的,是否可以使用 BRIN 而不是 Btree 来完成?
我试过了,正如预期的那样,它不起作用:
create table foo (
id integer,
constraint foo_pk primary key using BRIN (id)
)
Run Code Online (Sandbox Code Playgroud)
所以,两个问题:
当然,我对此的理解可能不完整,在这种情况下,我将不胜感激。
我在练习中遇到了这个问题,它让我发疯,我无法修复它......基本上我使用的是 SQLLite,所以我只能使用任何窗口函数来获得结果,而且更痛苦部分原因是已创建的架构上没有唯一的 id。参见示例:
**Name, DateAdded, Amount**
John, 2015-10-12, 100.00
John, 2015-10-15, 50.00
Aaron, 2015-09-20, 10.00
Paul, 2014-12-20, 24.00
Paul, 2015-12-23, 32.00
Run Code Online (Sandbox Code Playgroud)
当您没有任何唯一的 id 可供参考时,在 SQL Lite 中使用 ROW_NUMBER() 的替代方法是什么?我想按名称分区并按金额排序。
提前致谢。
我假设我在文档中遗漏了一些简单的内容,但在我的一生中,我无法弄清楚如何在 PostgreSQL 的日志文件中添加运行查询的机器的用户 ID 和 IP 地址。pg_stat_activity
一旦发生,我可以清楚地看到它,但是在对数据库问题进行事后分析时,在日志中看到这些会非常有帮助。
我怀疑这很重要,但我的服务器启动是这样的:
$BIN/pg_ctl -D /apps/pgdata9.5.0 -l /apps/logs/postgresql start
Run Code Online (Sandbox Code Playgroud)
我希望在 postgresql.conf 中有一个设置,但如果在那里它就躲过了我。
postgresql ×3
sql ×2
c# ×1
dbeaver ×1
indexing ×1
logging ×1
npgsql ×1
primary-key ×1
select ×1
sqlite ×1