gpt4 book ai didi

postgresql - 如何使用 PostgreSQL 更改或更改 View 中的列类型?

转载 作者:行者123 更新时间:2023-11-29 11:33:23 25 4
gpt4 key购买 nike

我有一个观点,其中一列是时间型整数,我想将其更改为数字。为此,我使用了以下语法

ALTER VIEW view_timesheets  ALTER COLUMN timetaken type numeric;

当我运行它时,我得到了异常

"view_timesheets" is not a table, composite type, or foreign table

请解释如何更改列类型。谢谢

最佳答案

这是不可能的。您将必须通过提供其完整定义来重新创建 View 。另请注意,当您更改列的类型时,您甚至不能创建或替换 View 。如果您的 View 依赖于更改的 View ,您也必须删除/创建它们。

在我的公司中,我们使用的策略是将数据库中可重新创建的所有内容(如 View 、函数等)存储在一堆大型 SQL 文件中,每当底层表结构发生任何变化时我们都会执行这些文件,因此我们不必关心依赖 View 。

这些文件中的 View 部分基本上是这样的:

DROP VIEW IF EXISTS vw_a CASCADE;
CREATE OR REPLACE VIEW vw_a AS
...;

DROP VIEW IF EXISTS vw_b_depending_on_a CASCADE;
CREATE OR REPLACE VIEW vw_b_depending_on_a AS
...;

当然,第二个 CASCADE 以及 OR REPLACE 似乎没有用,但它们可以轻松地将更改的定义复制并粘贴到正在运行的开发数据库中,而无需多加考虑。

关于postgresql - 如何使用 PostgreSQL 更改或更改 View 中的列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37129567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com