【Snowflake】Snowflake ~ SEQUENCE ~

■ はじめに

小ネタ。

Snowflake の SEQUENCE について扱う

目次

【1】SEQUENCE
【2】SQL文
 1)CREATE 文
 2)SHOW 文
 3)ALTER 文
【3】使用上の注意
 1)シーケンス作成後、初期値変更不可
 2)連続した値は保証されない
 3)作成後に初期値は変更できない

【1】SEQUENCE

* DB でいうと オートインクリメント(自動採番) の機能
 => パフォーマンス的にも高速に使用できる
 => ただし、とび番になる。(「【3】使用上の注意」参照)
 => とび番になっても問題ないようであれば、
  十分に桁数も設けてあれば使用上問題なさげ

https://docs.snowflake.com/ja/user-guide/querying-sequences

【2】SQL

1)CREATE文

https://docs.snowflake.com/ja/sql-reference/sql/create-sequence

-- SEQUENCE 作成
CREATE OR REPLACE SEQUENCE seq_01 START = 1 INCREMENT = 1;

-- 使い方(<seq_name>.NEXTVAL)
SELECT seq_01.nextval;

2)SHOW 文

https://docs.snowflake.com/ja/sql-reference/sql/show-sequences

-- 構文
SHOW SEQUENCES [ LIKE '<pattern>' ] ...

-- 使い方
SHOW SEQUENCES;

3)ALTER 文

https://docs.snowflake.com/ja/sql-reference/sql/alter-sequence

ALTER SEQUENCE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER SEQUENCE [ IF EXISTS ] <name> [ SET ] [ INCREMENT [ BY ] [ = ] <sequence_interval> ]

ALTER SEQUENCE [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'

ALTER SEQUENCE [ IF EXISTS ] <name> UNSET COMMENT

-- 初期値の変更はできない(「【3】使用上の注意」の3)参照)

【3】使用上の注意

https://docs.snowflake.com/ja/sql-reference/sql/create-sequence#usage-notes

1)シーケンス作成後、初期値変更不可

シーケンスの作成後には、シーケンスの最初/初期値は変更できない

2)連続した値は保証されない

生成された数値は一貫して値が増加するが、
必ずしも連続しているとは限りない。

1
2
4 <- 3 がなく、4
5
6

3)作成後に初期値は変更できない

https://docs.snowflake.com/ja/sql-reference/sql/alter-sequence#usage-notes

より抜粋
~~~~~~~~~~~~~~~
シーケンスの作成後には、
シーケンスの最初/初期値は変更できません。
~~~~~~~~~~~~~~~
 => ALTER でも変更できない

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520