如何在 postgresql 的视图中更改 table 列数据类型
how to change a table column datatype in a view in postgresql
))大家好,我的 table 中有一个 'Interval' 数据类型列,我想在我的 table 视图中将其更改为 'character varying' 数据类型。
我知道我可以使用...更改它
to_char(interval, 'yy-mm-dd HH24:MI:SS.MS');
但我想在我的 table 中将该列数据类型保留为 'interval',并查看 table 将 'interval' 列更改为 'character varying' 我的table视图中的数据类型。
太简单了...
CREATE TABLE mytable (length INTERVAL);
INSERT INTO mytable (length) VALUES (INTERVAL '1 minute');
CREATE VIEW myview AS
SELECT to_char(length, 'yy-mm-dd HH24:MI:SS.MS') AS length
FROM mytable;
这可能吗?感谢进阶。
您可以像指定任何其他查询一样指定您的视图,而无需更改基础 table 类型。这是一个 Fiddle 你的例子。
CREATE TABLE mytable (length INTERVAL);
INSERT INTO mytable (length) VALUES (INTERVAL '1 minute');
CREATE VIEW myview AS
SELECT to_char(length, 'yy-mm-dd HH24:MI:SS.MS') AS length
FROM mytable;
SELECT * FROM mytable;
-- 0 years 0 mons 0 days 0 hours 1 mins 0.00 secs
SELECT * FROM myview;
-- 00-00-00 00:01:00.000
))大家好,我的 table 中有一个 'Interval' 数据类型列,我想在我的 table 视图中将其更改为 'character varying' 数据类型。
我知道我可以使用...更改它
to_char(interval, 'yy-mm-dd HH24:MI:SS.MS');
但我想在我的 table 中将该列数据类型保留为 'interval',并查看 table 将 'interval' 列更改为 'character varying' 我的table视图中的数据类型。
太简单了...
CREATE TABLE mytable (length INTERVAL);
INSERT INTO mytable (length) VALUES (INTERVAL '1 minute');
CREATE VIEW myview AS
SELECT to_char(length, 'yy-mm-dd HH24:MI:SS.MS') AS length
FROM mytable;
这可能吗?感谢进阶。
您可以像指定任何其他查询一样指定您的视图,而无需更改基础 table 类型。这是一个 Fiddle 你的例子。
CREATE TABLE mytable (length INTERVAL);
INSERT INTO mytable (length) VALUES (INTERVAL '1 minute');
CREATE VIEW myview AS
SELECT to_char(length, 'yy-mm-dd HH24:MI:SS.MS') AS length
FROM mytable;
SELECT * FROM mytable;
-- 0 years 0 mons 0 days 0 hours 1 mins 0.00 secs
SELECT * FROM myview;
-- 00-00-00 00:01:00.000