DDL

データベースの設定用のスクリプトのこと。
データベースやテーブルの作成をGUIのツールで行うこともできるが、数が多いと操作が多くなりメンドクサイ。

よーく考えてみると、SQL形式でバックアップできるデータベースなら、
中身はSQLなんだから、その中の CREATE TABLE や CREATE INDEX を取り出せば、テーブルを作り直すSQLファイルを作れるはず。

しかし、SQL形式でバックアップできないなら、CREATE TABLEを作成するSQLを作ればいい。

MySQLの場合は、
SHOW COLUMNS FROM テーブル名
でテーブルのカラムの情報が見れる。

FieldTypeNullKeyDefaultExtra
link_idbigint(20) unsignedNOPRINULLauto_increment
link_urlvarchar(255)NO
link_namevarchar(255)NO
link_imagevarchar(255)NO
link_targetvarchar(255)NO
link_descriptionvarchar(255)NO
link_visiblevarchar(20)NOMULY
link_ownerbigint(20) unsignedNO1
link_ratingint(11)NO0
link_updateddatetimeNO0000-00-00 00:00:00
link_relvarchar(255)NO
link_notesmediumtextNONULL
link_rssvarchar(255)NO
link_categorybigint(20)NO0
SHOW COLUMNS FROM wp_links

EXCELに貼る元ネタはとしてはいいけど、これからCREATE TABLE を作るのは面倒。
SHOW CREATE TABLE テーブル名
で、直接DDLがゲットできる。

TableCreate Table
wp_linksCREATE TABLE `wp_links` (
 `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘Y’,
 `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1,
 `link_rating` int(11) NOT NULL DEFAULT 0,
 `link_updated` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
 `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
 `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_category` bigint(20) NOT NULL DEFAULT 0,
 PRIMARY KEY (`link_id`),
 KEY `link_visible` (`link_visible`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
show create table wp_links

ORACLEの場合は
select DBMS_METADATA.getDDL(‘TABLE’, ‘テーブルの名前’);
でDDLがゲットできるらしい。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA