Sql 组合创建表、更改表、更新表
我正在Postgresql中创建一个视图,在其中我将多个表连接到一个表中。我想在末尾添加一个带有时间戳的新变量。我用这样的表格做过:Sql 组合创建表、更改表、更新表,sql,postgresql,Sql,Postgresql,我正在Postgresql中创建一个视图,在其中我将多个表连接到一个表中。我想在末尾添加一个带有时间戳的新变量。我用这样的表格做过: CREATE TABLE table AS with table_temp AS ( --joining tables ); ALTER TABLE table ADD COLUMN DateOfChange Timestamp; UPDATE table SET DateOfChange = LOCALTIMESTAMP(0) at TIME ZONE '
CREATE TABLE table
AS with table_temp AS (
--joining tables
);
ALTER TABLE table
ADD COLUMN DateOfChange Timestamp;
UPDATE table
SET DateOfChange = LOCALTIMESTAMP(0) at TIME ZONE 'Etc/GMT+2';
我需要将这些句子合并成一个句子(由于视图)。
我试图先创建一个表,但我想我做错了。我这样做:
CREATE TABLE table
AS UPDATE(
ALTER TABLE(
with table_temp AS (
--joining tables
)
ADD COLUMN DateOfChange Timestamp)
SET DateOfChange = LOCALTIMESTAMP(0) at TIME ZONE 'Etc/GMT+2';
但这是行不通的。如何正确地做?有可能出现这样的情况吗?设置时区'Etc/GMT+2';
SET TIME ZONE 'Etc/GMT+2';
CREATE VIEW <view_name> AS
SELECT <your_fields>,DateOfChange Timestamp TIME ZONE DEFAULT LOCALTIMESTAMP(0)
FROM <your_tables_joined_as_needed>;
创建视图为
选择,DateOfChange时间戳时区默认本地时间戳(0)
从…起
您可以使用
CREATE MATERIALIZED VIEW my_view AS
SELECT <table columns>, LOCALTIMESTAMP(0) AS date_of_change FROM table1
UNION (
SELECT <table columns>, LOCALTIMESTAMP(0) AS date_of_change FROM table2
);
是否只需要列默认值?表/视图将自动重写,因此列值将更改。因此,它实际上不是默认值…选择,时区“Etc/GMT+2”处的LOCALTIMESTAMP(0)作为从--加入表的更改日期
REFRESH MATERIALIZED VIEW my_view;