S-JIS[2023-10-09/2023-12-07]
|
TsurugiのSQLでテーブルを作成するのがcreate table文。
create table テーブル名 (カラム定義, …)
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 test ( foo int primary key, bar bigint, zzz varchar(10) );
create table test ( foo int, bar bigint, zzz varchar(10), primary key (foo) );
テーブルが存在しない場合のみテーブルを作成する。[2023-12-07]
Tsurugi 1.0.0-BETA2以降。
create table if not exists test ( foo int primary key, bar bigint, zzz varchar(10) );
テーブルが既に存在している場合は何もしない。(エラーにならない)