Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Postgres-是否有办法永久性地仅在输出中更改某些列的数据类型(SELECT的输出以及UPDATE和INSERT的返回)?_Javascript_Sql_Node.js_Postgresql - Fatal编程技术网

Javascript Postgres-是否有办法永久性地仅在输出中更改某些列的数据类型(SELECT的输出以及UPDATE和INSERT的返回)?

Javascript Postgres-是否有办法永久性地仅在输出中更改某些列的数据类型(SELECT的输出以及UPDATE和INSERT的返回)?,javascript,sql,node.js,postgresql,Javascript,Sql,Node.js,Postgresql,我有几个表,有些列必须是十进制的。它们保存有关货币的数据。但是,它们不能在JavaScript中转换为自动浮动。Postgres建议以十进制或数字形式保存货币数据,因为它们更准确。是否有一种方法可以将它们转换为真实的或双精度的,并且只在输出中自动且永久地转换?我可以添加一些约束来实现我的目标吗 因为我的JS代码中有很多查询,我希望找到一种在Postgres中实现它的方法。否则,我必须在我的JS代码中做很多更改。在表的顶部创建一个视图,并在那里进行转换,使用视图在JS代码中而不是表中进行查询。视图

我有几个表,有些列必须是十进制的。它们保存有关货币的数据。但是,它们不能在JavaScript中转换为自动浮动。Postgres建议以十进制或数字形式保存货币数据,因为它们更准确。是否有一种方法可以将它们转换为真实的或双精度的,并且只在输出中自动且永久地转换?我可以添加一些约束来实现我的目标吗


因为我的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
返回
语句包含在“输出”中