Sql 组合创建表、更改表、更新表

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 '

我正在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 '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;