Redshift

Redshiftはビューの参照先テーブルをrenameすると追跡する

またタイトルだけで言いたいこと終わった… => create table t (x int); CREATE TABLE => insert into t values (777); INSERT 0 1 => create view v as select * from t; CREATE VIEW => alter table t rename to t2; ALTER TABLE => select * from v; x ---…

SQLだけでテーブル内容の一致判定をする

同じ定義のテーブルが2つあり、 その全行が同じかどうか(違う行がないか)を確かめたいときの方法。 select count(*) from ( (select * from x except select * from y) union all (select * from x except select * from y) ) 結果が 0 なら内容は同じです…

ビューも alter table で renameできることを知った

知った。 => create view vv as select * from t; CREATE VIEW Time: 144.060 ms => alter table vv rename to vv2; ALTER TABLE Time: 134.566 ms => \dv vv2 List of relations schema | name | type | owner --------+------+------+-------- aamine | vv…

なんでexplain drop tableできないんだよ!!

タイトルで書きたいこと終わった… => explain drop table s; ERROR: syntax error at or near "drop" LINE 1: explain drop table s; ^ Time: 14.038 ms なんでこんなことをしたいかと言うと、バッチSQLを書いたときに SQLのシンタックスとテーブル参照だけ…

DROP TABLE ... CASCADEでビューもろともテーブルを消す

Redshift使ってたらビューは普通に使う。 例えばちょっと試しに新しいデータを作るときに本番のデータを参照するビューを張って、 ビューで計算するとか。 あるいは本番環境の巨大なテーブルを開発環境からビューで参照して、 データの重複をなくしつつ、書…