S-JIS[2023-10-09/2023-12-07]

Tsurugi create table

TsurugiSQLのcreate tableのメモ。


概要

TsurugiのSQLでテーブルを作成するのがcreate table文。

create table テーブル名 (カラム定義, …)

DDLを実行する際のトランザクション種別


Tsurugi 1.0.0-BETA1では、create table 〜 as selectは未実装。


Tsurugiサーバーの内部では、テーブルのデータはKVS(Key Value Store)で格納されている。(実際はMasstreeという構造らしい)
つまりキー(プライマリキー)が必須である。
create tableでプライマリキーを指定しない場合、暗黙にキー(シーケンス)が生成される。

他のRDBMSではプライマリキー項目に対して(暗黙に)インデックスを作成するかもしれないが、
Tsurugi内部はKVSでありキーの昇順でデータが格納されるので、プライマリキーに対してインデックスという特別な何かは作成されない。


TsurugiはインメモリーDB(データはメモリー上に置く)なので、他のRDBMSのtablespace(データの格納先ディレクトリーやファイルサイズの上限等)のような指定は無い。

ただ、永続化の為にデータをファイル(ディスク)に保存することは行う。
その場所は構成定義ファイルdatastoreセクションのlog_locationで指定する。


create tableの例

create table test (
  foo int primary key,
  bar bigint,
  zzz varchar(10)
);
create table test (
  foo int,
  bar bigint,
  zzz varchar(10),
  primary key (foo)
);

指定できるデータ型


create table if not existsの例

テーブルが存在しない場合のみテーブルを作成する。[2023-12-07]
Tsurugi 1.0.0-BETA2以降。

create table if not exists test (
  foo int primary key,
  bar bigint,
  zzz varchar(10)
);

テーブルが既に存在している場合は何もしない。(エラーにならない)


Tsurugi SQLへ戻る / Tsurugiへ戻る / 技術メモへ戻る
メールの送信先:ひしだま