Skip to content

Commit 9d77ed2

Browse files
authored
Merge pull request #1428 from future-architect/feature
シーケンス名称
2 parents fc99af5 + 64a2a7e commit 9d77ed2

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

source/_posts/20241113a_PostgreSQLで連番を自動生成してくれるIDENTITY列.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -511,13 +511,20 @@ CREATE TABLE tablename (
511511
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
512512
```
513513

514-
IDENTITY列に関しては、手動で作成したシーケンスとIDENTITY列を紐づける構文は、ドキュメントを探した時点では存在しませんでした。
514+
IDENTITY列に関しては、手動で作成したシーケンスとIDENTITY列を紐づける構文は、ドキュメントを探した時点では存在しませんでした(予め作成したシーケンスを複数の用途で共有して使いたいといったユースケースは実現できなさそうです)
515515

516-
そのため、独自の名称のシーケンスにしたければ `ALTER SEQUENCE RENAME` で変更する運用になるかと思います
516+
名称だけの話であれば可能です。作成時にシーケンスオプションで指定するか、先述の通り、 `ALTER SEQUENCE RENAME` で変更できます
517517

518-
また、次のようにシーケンスオプションも作成時に指定できます(ALTERで変更も可能)です。おそらく、困ることは無いかなと思います。
518+
```sql シーケンスオプションで指定
519+
CREATE TABLE color (
520+
color_id BIGINT GENERATED ALWAYS AS IDENTITY (SEQUENCE NAME custom_color_seq) PRIMARY KEY,
521+
color_name VARCHAR NOT NULL
522+
);
523+
```
519524

520-
```sql
525+
また、次のように名称以外も、シーケンスオプションで指定できます(ALTERで変更も可能)です。一般的なユースケースでは、困ることは無いかなと思います。
526+
527+
```sql シーケンスの開始値、キャッシュ値などを指定
521528
CREATE TABLE color (
522529
color_id INT GENERATED ALWAYS AS IDENTITY (START WITH 10 INCREMENT BY 1 CACHE 100),
523530
color_name VARCHAR NOT NULL

0 commit comments

Comments
 (0)