Ehr*_*ryk 17 postgresql sql-server datatypes
数据库通常是非常可定制的,具有不同的数据类型和自定义长度。
这让我感到惊讶,因为我试图寻找语法来使用unsigned int它们在 PostgreSQL 和 MS SQL Server 中都不可用的类型。MySQL 和 Oracle 似乎都可以。
这对他们来说似乎是一个明显的遗漏 - 下一个最佳性能选项是 long/bigint,(8 字节整数),但可能完全没有必要!有谁知道为什么他们会选择不包含本机 unsigned int 支持?
Ehr*_*ryk 18
微软的 Jim Hogg 对此问题做出了以下回应:
有利有弊。在专业方面,这似乎是避免一些错误的好方法 - 必须检查(有符号的)int 的值 > 0。而且我还敢说,int 的许多用途实际上与无论如何都不应该为负的计数有关. 关于将最大行数加倍的问题?- 是的,但我会说这不那么引人注目。
在缺点方面......在 C 或 C++ 中混合有符号/无符号类型似乎应该足够简单。它不是。它打开了一个难以发现的错误的小陷阱——主要是由于隐式提升/扩大的复杂规则。唉,SQL 已经有了一套更复杂的隐式转换规则。我担心,添加无符号整数会使我们更加困惑。
我会把这个建议记在书上。但是,在我们可以/应该添加的所有功能中,这个功能并没有接近该列表的顶部。
来源:微软连接
我会在专业列表中添加大量内容,并重申他们的 SQL 引擎已经在做比这更复杂的事情,因此他们的团队可以处理增加的复杂性。虽然我不同意他们的总结,但这就是SQL Server 不支持 unsigned types 的原因。
Connect 链接最初由Martin Smith在问题评论中发布。
| 归档时间: |
|
| 查看次数: |
25378 次 |
| 最近记录: |