[解決済み] as select in redshiftに挿入する。
2022-02-18 17:08:41
質問
テーブルemp - があります。
empno int(5) identity(1,1),
ename varchar(50) default '-0',
deptname varchar(50) default '-0'
ステートメントを使用すると -
insert into emp(ename, deptname) select ename, deptname from emp1;
emp1 からすべての値を取得していますが、null 値が置換されていません。
-0
でなく
null
.
その理由は何ですか?
解決方法は?
意図した動作
によると Redshiftのドキュメント :
デファクト default_expr
[...]
は default_expr 式は、カラムの値を指定しないすべての INSERT 操作で使用されます。デフォルト値が指定されていない場合、そのカラムのデフォルト値は NULL となります。
ということで、実行すると
insert into emp(ename, deptname)
の場合、これらのカラムの値を指定することになります。
NULL
. カラムを省略した場合のみ、デフォルト値が使用されます。つまり
default
の値は、値を直接挿入する場合のみ、本当に便利です。
insert into emp(ename, deptname) values('some_ename', default);
insert into emp(ename, deptname) values(default, 'some_deptname');
insert into emp(ename, deptname) values(default, default);
を与えることになる。
select * from emp order by empno;
empno | ename | deptname
-------+------------+---------------
1 | some_ename | -0
2 | -0 | some_deptname
3 | -0 | -0
(3 rows)
問題解決のために考えられること
オプション1:2つ
INSERT
ステートメント
Pro:実際のデフォルト値について知る必要はない
欠点:カラム数が多い場合、面倒かもしれない。
insert into emp(ename) select ename from emp1 where deptname is null;
insert into emp(deptname) select deptname from emp1 where ename is null;
オプション2:使用する
COALESCE
Pro: への1つのクエリ
default
すべて
Con: デフォルト値を知っておく必要があります。
insert into emp(ename, deptname)
select
coalesce(ename, '-0') as ename
, coalesce(deptname, '-0') as deptname
from
emp1
;
関連
-
[解決済み】あなたのWSGIPathは、存在しないファイルを参照しています。
-
[解決済み] AWS-CLI: autoscalinggroupsをリストダウンする方法
-
[解決済み] AWS Lambda Functionに一時ファイルを保存することはできますか?
-
[解決済み] SNS/SMSのログはどこにありますか?クラウドウォッチ空
-
[解決済み] AWSの169.254.169.254IPアドレスは何が特別なのか?[クローズド]
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。
-
[解決済み] kubectlエラー EKSクラスタにアクセスする際、サーバーにログインする必要がある(Unauthorized)。
-
[解決済み] CIDRアドレスがVPCのCIDRアドレスに含まれない
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] Amazon SNSとAmazon SQSの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】S3 Bucket アクションがどのリソースにも適用されない
-
[解決済み] DynamoDBテーブルの複数の項目を一度に更新する方法
-
[解決済み] AWS ElasticsearchとAWS Redshiftの違いは何ですか?
-
[解決済み] エラー: networkMode 'awsvpc' が指定された場合、ネットワーク構成を提供する必要があります。
-
[解決済み] TerraformとAWS。No Configuration Files Found Error
-
[解決済み] CloudFrontがオリジンに接続できなかった
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] AWSです。CloudFormationのテンプレートでbooleanパラメータを指定する方法
-
[解決済み] AWS CLIツールからAWSアカウント番号を取得する簡単な方法とは?
-
[解決済み] EC2でインスタンスを削除するには?