phpMyAdminで見れば良いだろうと言えばそうのだが、やはりSQL文で定義情報を確認および保存しておく事が必要(DBやテーブルの一括作成)な時も多々ある。
CakePHPでschema.php に定義を追加する時なども必要になる。関連など後から作成した表が schema.php にない場合もあるので、定義情報を簡単に出力できるように確認しておくべきだ。
■MySQL では、下記の通りで対応できる。
■コマンド [hogehoge@hoge]$ mysqldump -h[ホスト] -u[ユーザ名] -p[パスワード] -d [データベース名] [テーブル名] ■出力結果 CREATE TABLE `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(50) CHARACTER SET utf8 NOT NULL, `password` varchar(50) CHARACTER SET utf8 NOT NULL, `fullname` varchar(50) CHARACTER SET utf8 NOT NULL, `email` varchar(256) CHARACTER SET utf8 NOT NULL, `tel` varchar(20) CHARACTER SET utf8 NOT NULL, `memo` text CHARACTER SET utf8 NOT NULL, `created` datetime DEFAULT NULL, `updated` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
■オラクル(Oracle10g)では下記のコマンドになります。
■コマンド
set long 10000 (出力する文字数を指定…10000文字まで)
select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual;
■出力結果(テーブル:users)
DBMS_METADATA.GET_DDL('TABLE','users')
--------------------------------------------------------------------------------
CREATE TABLE "HOGE"."USERS"
( "ID" NUMBER(6,0),
"USERNAME" VARCHAR2(50),
"PASSWORD" VARCHAR2(50),
"FULLNAME" VARCHAR2(50),
"EMAIL" VARCHAR2(256),
"TEL" VARCHAR2(20),
"MEMO" VARCHAR2(512),
"CREATED" DATE,
"UPDATED" DATE,
CONSTRAINT "USERS_PK" PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 20 PCTUSED 70 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 983040 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
※上記は別ファイルの出力結果をMySQLのテーブルと項目名を揃えた編集版です。
よって、領域の情報は元々のテーブルの値をそのまま表示しています。
0 件のコメント:
コメントを投稿