ablog

不器用で落着きのない技術者のメモ

Amazon Redshift でテーブルの列のデフォルト値を指定する

Amazon Redshift で列のデフォルト値を指定する。

dev awsuser 20230517_17:43:39 =# create table test_default_col(
  name varchar(10),
  updated timestamp DEFAULT sysdate
);
CREATE TABLE
Time: 632.178 ms
dev awsuser 20230517_17:43:55 =# insert into test_default_col(name) values('muto');
INSERT 0 1
Time: 662.837 ms
dev awsuser 20230517_17:43:59 =# select * from test_default_col;
 name |          updated
------+----------------------------
 muto | 2023-05-17 08:43:58.661477
(1 row)

参考

DEFAULT default_expr列のデフォルトのデータ値を割り当てる句。default_expr のデータ型は列のデータ型に一致する必要があります。DEFAULT 値は、変数を使用しない式にする必要があります。サブクエリ、現在のテーブルに含まれる他の列の相互参照、およびユーザー定義の関数は使用できません。
default_expr 式は、列の値を指定しないすべての INSERT 操作で使用されます。デフォルト値を指定しなかった場合、列のデフォルト値は null です。
定義済み列リストの COPY 操作で、DEFAULT 値が含まれている列を省略すると、COPY コマンドで default_expr の値が挿入されます。

CREATE TABLE - Amazon Redshift
create table customer1
(
  customer_id number,
  customer_name varchar2(20),
  exp_date date DEFAULT to_date('31-dec-2099','dd-mon-yyyy')
)
'DEFAULT' in Amazon Redshift - Stack Overflow