ENUMカラムにランダムな有効値をシードする

定義された値からランダムに選択してSQL ENUMカラムのシードデータを生成します。MySQL ENUM型とVARCHARステータスカラムに対応。

Data Types

詳細な説明

ENUMとステータスカラムのシーディング

多くのデータベースではENUM型や有効値の限定セットを持つVARCHARカラムを使用します。シードジェネレーターは明示的なMySQL ENUM型とカテゴリカルな値を示唆するカラム名の両方のパターンを処理します。

MySQL ENUMの例

CREATE TABLE orders (
  id SERIAL PRIMARY KEY,
  customer_name VARCHAR(100) NOT NULL,
  status ENUM('pending', 'processing', 'shipped', 'delivered', 'cancelled') NOT NULL,
  priority ENUM('low', 'medium', 'high') DEFAULT 'medium',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

statusカラムの場合、ジェネレーターはENUM定義を解析し、各行でpendingprocessingshippeddeliveredcancelledからランダムに選択します。各値は等しい確率で選択されます。

名前ベースのステータス検出

明示的なENUM型がなくても、ジェネレーターはstatusという名前のカラムを認識し、組み込みプールから値を生成します:activeinactivependingsuspendedarchived。同様に、roleという名前のカラムはadminusereditormoderatorなどの値を受け取ります。

カラム名→カテゴリマッピング

カラム名 生成される値
status active, inactive, pending, suspended, archived
role / user_role admin, user, editor, moderator, viewer
category electronics, clothing, food, books, sports, home, garden

分布

ジェネレーターは均一なランダム選択を使用します。十分に大きなデータセット(100行以上)では、各ENUM値はほぼ同じ回数出現します。これは意図的なもので、すべての値がテストされることを保証します。

ENUM機能のテスト

リアルなenumデータにより、ドロップダウンフィルター、バッジ/ラベルのレンダリング、ステータス遷移ロジック、「ステータス別注文数」のような集計クエリを検証できます。

ユースケース

ステータスベースのワークフローを持つ注文管理システムがあります。ステータスフィルターのドロップダウン、色分けされたバッジ、ステータス遷移を管理するステートマシンをテストできるように、すべてのステータス値に分散した注文のシードデータが必要です。

試してみる — Database Seed Generator

フルツールを開く