我在使用 pgadim 和 navicate 时发现它们的数据类型和生成 sql 语句完全不一样,于是问了一下ChatGPT,算是搞清楚了。
以下内容来自ChatGPT:
1. postgresql 中 double precision 和 float8 一样吗?
是的,double precision
和 float8
在 PostgreSQL 中是同义词,它们都代表 8 字节浮点数类型。不过需要注意的是,它们与 real
或 float4
不同,后者只代表 4 字节浮点数类型。
2. 为什么它们要叫不同的名子,这样记忆容易产生混乱?
其实 double precision
和 float8
之间的不同只是它们的名字不同,但是它们代表的是同一个数据类型。它们的名字来源于不同的计算机体系结构和编程语言,例如 double precision
来自于 IEEE 754 标准中的双精度浮点数,而 float8
则来自于 C 语言中的 double
类型。由于 PostgreSQL 是一个开源的关系型数据库管理系统,它的开发者们尊重了不同计算机体系结构和编程语言中的命名惯例,因此为了方便用户使用,提供了这两个不同的名称。 尽管在 PostgreSQL 中 double precision
和 float8
是同义词,但是为了避免混淆,在使用时建议使用其中一个名称,这样在代码中更易于阅读和理解。