Javascript Postgres-是否有办法永久性地仅在输出中更改某些列的数据类型(SELECT的输出以及UPDATE和INSERT的返回)?
我有几个表,有些列必须是十进制的。它们保存有关货币的数据。但是,它们不能在JavaScript中转换为自动浮动。Postgres建议以十进制或数字形式保存货币数据,因为它们更准确。是否有一种方法可以将它们转换为真实的或双精度的,并且只在输出中自动且永久地转换?我可以添加一些约束来实现我的目标吗Javascript Postgres-是否有办法永久性地仅在输出中更改某些列的数据类型(SELECT的输出以及UPDATE和INSERT的返回)?,javascript,sql,node.js,postgresql,Javascript,Sql,Node.js,Postgresql,我有几个表,有些列必须是十进制的。它们保存有关货币的数据。但是,它们不能在JavaScript中转换为自动浮动。Postgres建议以十进制或数字形式保存货币数据,因为它们更准确。是否有一种方法可以将它们转换为真实的或双精度的,并且只在输出中自动且永久地转换?我可以添加一些约束来实现我的目标吗 因为我的JS代码中有很多查询,我希望找到一种在Postgres中实现它的方法。否则,我必须在我的JS代码中做很多更改。在表的顶部创建一个视图,并在那里进行转换,使用视图在JS代码中而不是表中进行查询。视图
因为我的JS代码中有很多查询,我希望找到一种在Postgres中实现它的方法。否则,我必须在我的JS代码中做很多更改。在表的顶部创建一个视图,并在那里进行转换,使用视图在JS代码中而不是表中进行查询。视图创建示例
CREATE VIEW view_name AS
SELECT cast(column as integer) as column
FROM table;
如果您使用任何ORM,正确的位置是在您要使用的表的
模型中执行此操作。@AbhinavD我使用的是knex.js
,它只是一个查询生成器。我认为它没有模型
。我不熟悉视图
。视图是否可以使用更新和插入?因为我希望返回语句的输出也被翻译。@qwang:-数据库支持通过视图进行更新和插入。查看postgre sql DB文档以了解详细信息。我试图通过视图插入。然而,在视图中,我试图通过我想要的类型price::double precision
将列price
转换为双精度。它将返回一个错误错误:无法在视图“products\u view”的“price”列中插入,因为不是其基本关系列的视图列不可更新。如果我不使用类型翻译,那么我要求的问题仍然没有解决。@qwang:-把你的问题检查一遍。这里您提到了“仅输出”,插入和更新没有提到。您最好更新您的问题,以便其他人能够更好地理解它并相应地回答。对于误解,我很抱歉,我认为update
和INSERT
的返回
语句包含在“输出”中