セットアップ用の SQL の雛形

CakePHP とかでアプリケーションを作り始めるときに使う
セットアップ用の SQL の雛形をメモ。MySQL 5.x 用。


以下の作業を行う。

  1. すでにデータベースが存在すれば削除
  2. データベースを UTF-8 で作成
  3. 作ったデータベース専用のユーザを作成
  4. ユーザに権限を付与
  5. テーブルを作る(autoincrement で primary な ID 付き)

setup.sql

/*
 * setup.sql
 * Copyright(c) 2008 mallowlabs
 *
 * USAGE: mysql -u user -p < setup.sql
 */

DROP DATABASE IF EXISTS database_name;
CREATE DATABASE database_name DEFAULT CHARACTER SET utf8;

GRANT USAGE ON database_name.* TO database_user@localhost IDENTIFIED BY 'password';
GRANT SELECT,INSERT,UPDATE,DELETE ON database_name.* TO database_user@localhost;

USE database_name;

CREATE TABLE table_name (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
); 

CREATE INDEX index_name ON table_name(column_name(60));

2008.12.30 追記

インデックス作成の SQL をテンプレートに入れることにした。
インデックスを作らないと全探査になって遅くなるので
頻繁に参照されるカラムには必ずインデックスを作るべし。