A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
配列でもインデックスを使って検索できます。
CREATE TABLE
test=> CREATE TABLE t (c int[]);
CREATE TABLE
test=> INSERT INTO t SELECT ARRAY[n] FROM generate_series(1, 100000) AS n;
INSERT 0 100000
test=> EXPLAIN SELECT * FROM t WHERE c @> ARRAY[1];
QUERY PLAN
-------------------------------------------------------
Seq Scan on t (cost=0.00..1986.00 rows=100 width=25)
Filter: (c @> '{1}'::integer[])
(2 行)
test=> CREATE INDEX t_c_idx ON t USING gin (c);
CREATE INDEX
test=> ANALYZE t;
ANALYZE
test=> EXPLAIN SELECT * FROM t WHERE c @> ARRAY[1];
QUERY PLAN
------------------------------------------------------------------------
Bitmap Heap Scan on t (cost=5.05..281.52 rows=100 width=25)
Recheck Cond: (c @> '{1}'::integer[])
-> Bitmap Index Scan on t_c_idx (cost=0.00..5.03 rows=100 width=0)
Index Cond: (c @> '{1}'::integer[])
(4 行)
No.2
- 回答日時:
> どのようなマイナス面があるのかご教示いただけないでしょうか。
参照リンク先にもありますが、クライアント側ではこの機能を
ほとんどサポートしていません。
また配列項目にはINDEX作成できないみたいなので、検索が遅く
なる可能性が大きいです。
> 「(顧客番号+訪問日)を主キーして」という点は顧客番号、訪問日の両方を主キーにするという意味でしょうか?
(顧客番号、訪問日)の複合キーで主キーにするという意味です。
create table 顧客訪問
(
顧客番号 int,
訪問日 date,
primary key (顧客番号,訪問日)
);
のようにすれば作成できます。
No.1
- 回答日時:
create table テーブル
(
顧客番号 int primary key,
訪問日 date[]
);
insert into テーブル values ( 1, array[ cast('2010-1-1' as date), cast('2010-5-1' as date), cast('2010-11-1' as date) ]);
insert into テーブル values ( 2, array[ cast('2011-1-1' as date), cast('2011-3-1' as date), cast('2011-6-1' as date) ] );
update テーブル
set 訪問日 = ARRAY_APPEND( 訪問日, cast( '2010-9-1' as date ) )
where 顧客番号=1;
update テーブル
set 訪問日 = ARRAY_APPEND( 訪問日, cast( '2010-7-1' as date ) )
where 顧客番号=1;
https://202.32.10.37/PostgreSQL/Manual/document/ …
https://202.32.10.37/PostgreSQL/Manual/document/ …
出来ますけれど、失うものの方が大きいと思います。
なぜ、
顧客番号
訪問日
で(顧客番号+訪問日)を主キーして、訪問日にINDEXを貼るのではダメですか?
回答ありがとうございます。下記の点重ねてご教示願えないでしょうか。
<出来ますけれど、失うものの方が大きいと思います。
どのようなマイナス面があるのかご教示いただけないでしょうか。
<顧客番号
訪問日
で(顧客番号+訪問日)を主キーして、訪問日にINDEXを貼るのではダメですか?
「(顧客番号+訪問日)を主キーして」という点は顧客番号、訪問日の両方を主キーにするという意味でしょうか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- 倫理・人権 仕事名で接客 2 2022/05/14 19:00
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
単純なselectが遅くなるのです...
-
javaでデータベース上のテーブ...
-
SQLServerでの複数テーブルから...
-
最新レコードを抽出し外部結合...
-
テーブルに存在しない列をselec...
-
UPDATE文の更新順序について
-
PostgreSQL レコードからアイテ...
-
同一カラムに複数条件指定
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
シャンメリーが、硬くて開きま...
-
update文で改行を入れる
-
外部キーだけのテーブル(主キ...
-
SQL、2つのテーブルで条件一致...
-
Oracleで上書きImportはできま...
-
L2SWはARPテーブルを持っている?
-
ROWNUMでUPDATEをしたいのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
単純なselectが遅くなるのです...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
javaでデータベース上のテーブ...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
MS Access から PostgreSQL へ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
複数テーブルにまたがるmax
-
UPDATE文の更新順序について
-
マッチング
-
Postgresqlのレポート機能について
-
テーブル定義書作成時のIndex付...
-
postgres FILLFACTOR 確認方法
-
デットロック回避策(autocommit...
-
reindex と update のデッドロック
-
テーブルを作ろうとしたら。
おすすめ情報