From 64a2a7e89cc12d0e428358f2a5e8703476e31598 Mon Sep 17 00:00:00 2001 From: ma91n Date: Wed, 13 Nov 2024 15:41:17 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=B7=E3=83=BC=E3=82=B1=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...43\202\214\343\202\213IDENTITY\345\210\227.md" | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git "a/source/_posts/20241113a_PostgreSQL\343\201\247\351\200\243\347\225\252\343\202\222\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\246\343\201\217\343\202\214\343\202\213IDENTITY\345\210\227.md" "b/source/_posts/20241113a_PostgreSQL\343\201\247\351\200\243\347\225\252\343\202\222\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\246\343\201\217\343\202\214\343\202\213IDENTITY\345\210\227.md" index 38b8f408700..a95f257e811 100644 --- "a/source/_posts/20241113a_PostgreSQL\343\201\247\351\200\243\347\225\252\343\202\222\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\246\343\201\217\343\202\214\343\202\213IDENTITY\345\210\227.md" +++ "b/source/_posts/20241113a_PostgreSQL\343\201\247\351\200\243\347\225\252\343\202\222\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\246\343\201\217\343\202\214\343\202\213IDENTITY\345\210\227.md" @@ -511,13 +511,20 @@ CREATE TABLE tablename ( ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname; ``` -IDENTITY列に関しては、手動で作成したシーケンスとIDENTITY列を紐づける構文は、ドキュメントを探した時点では存在しませんでした。 +IDENTITY列に関しては、手動で作成したシーケンスとIDENTITY列を紐づける構文は、ドキュメントを探した時点では存在しませんでした(予め作成したシーケンスを複数の用途で共有して使いたいといったユースケースは実現できなさそうです)。 -そのため、独自の名称のシーケンスにしたければ `ALTER SEQUENCE RENAME` で変更する運用になるかと思います。 +名称だけの話であれば可能です。作成時にシーケンスオプションで指定するか、先述の通り、 `ALTER SEQUENCE RENAME` で変更できます。 -また、次のようにシーケンスオプションも作成時に指定できます(ALTERで変更も可能)です。おそらく、困ることは無いかなと思います。 +```sql シーケンスオプションで指定 +CREATE TABLE color ( + color_id BIGINT GENERATED ALWAYS AS IDENTITY (SEQUENCE NAME custom_color_seq) PRIMARY KEY, + color_name VARCHAR NOT NULL +); +``` -```sql +また、次のように名称以外も、シーケンスオプションで指定できます(ALTERで変更も可能)です。一般的なユースケースでは、困ることは無いかなと思います。 + +```sql シーケンスの開始値、キャッシュ値などを指定 CREATE TABLE color ( color_id INT GENERATED ALWAYS AS IDENTITY (START WITH 10 INCREMENT BY 1 CACHE 100), color_name VARCHAR NOT NULL