データ・ストアのスキーマまたは選択されたオブジェクトを出力します。このユーティリティは、SQL CREATE文で使用される次のスキーマ・オブジェクトを表示できます。
表示される詳細のレベルおよびオブジェクトは、オプションを使用して制御できます。出力は、データ・ストアがALTER文などにより現在の状態に達するまでの履歴ではなく、ある時点のデータ・ストアの状態のスナップショットを表しています。データ・ストア全体(データを含む)は、ttSchemaの出力から完全に再作成することはできません。ttSchemaの出力は、データ・ストアの全スキーマを再作成するために、ttIsqlユーティリティによって再現できます。
ttSchema [-h | -help | -?] ttSchema [-V | -version] ttSchema [-l] [-c] [ -list {all | tables | views | sequences | cachegroups | repschemas } [,...] ] [-st | -systemTables] [-u TT_instance] [-connStr connection_string | DSN ] [[owner.]name][...]
ttSchemaには、次のオプションがあります。
次のSQL文を使用して、ORDERSというデータ・ストアを作成するとします。 CREATE TABLE xyz.customer ( cust_num INTEGER NOT NULL PRIMARY KEY, region CHAR(2) NOT NULL, name VARCHAR(80), address VARCHAR(255) NOT NULL ) UNIQUE HASH ON (cust_num) PAGES=100; CREATE SEQUENCE xyz.custID MINVALUE 1 MAXVALUE 1000000; CREATE TABLE xyz.orders ( ord_num INTEGER NOT NULL PRIMARY KEY, cust_num INTEGER NOT NULL, when_placed TIMESTAMP NOT NULL, when_shipped TIMESTAMP, FOREIGN KEY(cust_num) REFERENCES xyz.customer (cust_num) ) UNIQUE HASH ON (ord_num) PAGES=100; CREATE MATERIALIZED VIEW xyz.order_summary AS SELECT cust.name, ord.ord_num, count(*) ord_count FROM xyz.orders ord, xyz.customer cust WHERE ord.cust_num = cust.cust_num GROUP BY cust.name, ord.ord_num; CREATE REPLICATION xyz.rep ELEMENT e1 TABLE xyz.orders MASTER rep1 ON "box1" SUBSCRIBER rep2 ON "box2" ELEMENT e2 TABLE xyz.orders MASTER rep2 ON "box2" SUBSCRIBER rep1 ON "box1";ttSchemaの出力は、次のようになります。
% ttSchema ORDERS CREATE TABLE xyz.customer ( cust_name INTEGER NOT NULL, region CHAR(2) NOT NULL, "name" VARCHAR(80), address VARCHAR(255) NOT INLINE NOT NULL, PRIMARY KEY(cust_num)) UNIQUE HASH ON(cust_num) PAGES = 100; CREATE TABLE xyz.orders ( ord_num INTEGER NOT NULL, cust_num INTEGER NOT NULL, when_placed TIMESTAMP NOT NULL, when_shipped TIMESTAMP, PRIMARY KEY(ord_num), FOREIGN KEY(cust_num) REFERENCES xyz.customer (cust_num)) UNIQUE HASH ON (ord_num) PAGES = 100; CREATE SEQUENCE xyz.custid INCREMENT BY 1 MINVALUE 1 MAXVALUE 1000000 START 1; CREATE REPLICATION xyz.rep ELEMENT e1 TABLE xyz.orders MASTER rep1 on "box1" SUBSCRIBER rep2 ON "box2" ELEMENT e2 TABLE xyz.orders MASTER rep2 ON "box2" SUBSCRIBER rep1 ON "box1" ; CREATE MATERIALIZED VIEW xyz.order_summary AS SELECT cust."name" name, ord.ord_num ord_num, COUNT(*) ord_count FROM xyz.orders ord, xyz.customer cust WHERE ord.cust_num = cust.cust_num GROUP BY cust."name", ord.ord_num;次のコマンドを実行した場合:
% ttSchema -list sequences ORDERS出力は次のように限定されます。
CREATE SEQUENCE xyz.custid INCREMENT BY 1 MINVALUE 1 MAXVALUE 1000000 START 1;オブジェクト名ごとにスキーマを表示するには、次のように指定します。
% ttSchema ORDERS xyz.rep CREATE REPLICATION xyz.rep ELEMENT e1 TABLE xyz.orders MASTER rep1 ON "box1" SUBSCRIBER rep2 ON "box2" ELEMENT e2 TABLE xyz.orders MASTER rep2 ON "box2" SUBSCRIBER rep1 ON "box1";
生成されたSQLでは、ALTER文による変換履歴は生成されません。また、出力には表のパーティションに関する情報がSQLコメントの形式で示されますが、表のパーティションは保持されません。
出力に、TimesTenの以前のリリースによって認識されるDDLと互換性があることは保証できません。