A. *_* W. 6 sql postgresql database-design
在 PostgreSQL 10 中,我正在创建一个包含数字列的表。我知道此列中的值必须精确,但我不确定最终值的确切大小是多少。
value NUMERIC
Run Code Online (Sandbox Code Playgroud)
与
value NUMERIC(20, 2)
Run Code Online (Sandbox Code Playgroud)
与指定任意大的精度相比,不指定精度有何优点或缺点?
指定精度会对数据产生两种影响:
对值进行四舍五入:
SELECT 100.005::NUMERIC(20,2) -- 100.01
如果您的值太大,则会引发错误:
SELECT 100.005::NUMERIC(3,2) -- ERROR: numeric field overflow
就最佳实践而言 - 我认为这取决于数据的性质。不过,很多时候,明确的比隐含的要好。