电脑上自己做科目一的网站,做网站需要哪些准备,合肥万户网络,东莞贸易网站建设❝PostgreSQL 是一种特性非常齐全的自由软件的对象-关系型数据库管理系统#xff08;ORDBMS#xff09;#xff0c;是以加州大学计算机系开发的 POSTGRES#xff0c;4.2版本为基础的对象关系型数据库管理系统。POSTGRES 的许多领先概念只是在比较迟的时候才出现在商业网站数… ❝PostgreSQL 是一种特性非常齐全的自由软件的对象-关系型数据库管理系统ORDBMS是以加州大学计算机系开发的 POSTGRES4.2版本为基础的对象关系型数据库管理系统。POSTGRES 的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL 支持大部分的 SQL 标准并且提供了很多其他现代特性如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样 PostgreSQL 也可以用许多方法扩展例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外因为许可证的灵活任何人都可以以任何目的免费使用、修改和分发 PostgreSQL。❞PostgreSQL 数据库在我们近几年的项目系统中使用的频率极高。原因很简单免费、高效、强大而在.NET项目中使用 PostgreSQL 数据库最常见的大概就是使用 Npgsql 作为驱动。Npgsql在2021年11月9日发布了全新的6.0.0版。从该版本开始 Npgsql 原生支持了多主机负载均衡和故障转移、支持通过OpenTelemetry报告跟踪数据、支持新 .NET 的 DateOnly 和 TimeOnly 类型等等。「还有一项被很多开发者忽视的改变」出于性能优化的原因参数名称默认开始区分大小写, 开发人员可以通过代码AppContext.SetSwitch(Npgsql.EnableLegacyCaseInsensitiveDbParameters, true);控制 Npgsql 像旧版本一样忽视参数大小写。其实呢一些不严谨按大小写区分的方式写的 .NET 程序,在升级后由于默认区分大小写让程序爆出一些异常来也是程序员们可以接受的。但是如果程序逻辑完全发生变化甚至是毁灭性影响的话你可能会欲哭无泪的。❝所以 Npgsql 紧急发布了「6.0.2」版本还原为默认不区分大小写了❞为什么呢源起有人在 Github 的 Npgsql 官方库中发布一条Issue来说明默认区分大小写带来的一种毁灭性打击。意思就是如果一条简单的 SQL 语句如下delete from persons where idid本意是根据传递的id参数值删除对应的一行记录。而如果在执行这个语句的时候传的参数名不是小写的id而是写成了Id。带来的结果却是把 persons 表内的数据全部删除了roji 在随后的回复中说明了造成这个问题的是由于如下问题交织在一起后引发的PostgreSQL 数据库本身不支持命名参数而是使用参数位置代替的也就是、2...Npgsql 通过重写 SQL 来支持的命名参数将 id 转变为 $1如果 Npgsql 在你的参数匹配时找不到对应名字的 NpgsqlParameter,则它不会翻译这个参数而是原样输出也就是 idPostgreSQL 中标识符可以使用作为前缀即数据库会认为这是一个叫id的字段所以 id 与 id 会等同上述问题叠合在一起后原来的 SQL 语句实际变成了delete from persons where idid等同于delete from persons where 11这问题在业务系统中绝对是毁灭性的。所以Npgsql 团队在 6.0.2 版本中修改了默认开关值使得默认不再区分大小写。「如果你正在使用 Npgsql 6.0.0或者 6.0.1 版为了你的职业甚至生命安全赶紧升级到6.0.2 吧」