複数の関連テーブルを一度にシードする
単一のSQLスキーマから複数の相互接続されたテーブルのINSERT文を生成します。複数のCREATE TABLE文の貼り付け方法を学びます。
Use Cases
詳細な説明
複数テーブルのシード生成
実際のアプリケーションには相互接続されたテーブルがあります。シードジェネレーターは複数のCREATE TABLE文を受け付け、単一の操作ですべてのシードデータを生成します。
複数テーブルスキーマの例
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE categories (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT
);
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
body TEXT,
author_id INTEGER NOT NULL REFERENCES users(id),
category_id INTEGER REFERENCES categories(id),
published BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE comments (
id SERIAL PRIMARY KEY,
post_id INTEGER NOT NULL REFERENCES posts(id),
user_id INTEGER NOT NULL REFERENCES users(id),
body TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
出力順序
ジェネレーターは入力にテーブルが現れる順序でINSERT文を生成します。参照整合性のために、親テーブルを先に貼り付けてください:
users(依存関係なし)categories(依存関係なし)posts(users、categoriesに依存)comments(posts、usersに依存)
JSON複数テーブル出力
JSON形式では、テーブル名をキーとする単一オブジェクトが出力されます:
{
"users": [ ... 10オブジェクト ... ],
"categories": [ ... 10オブジェクト ... ],
"posts": [ ... 10オブジェクト ... ],
"comments": [ ... 10オブジェクト ... ]
}
CSV複数テーブル出力
CSV形式では、各テーブルはコメントヘッダーで区切られます:
# Table: users
id,username,email,created_at
...
# Table: categories
id,name,description
...
行数はすべてのテーブルに適用
行数スライダーはすべてのテーブルに均一に適用されます。50行に設定すると、すべてのテーブルが50行を取得します。親テーブルが子テーブルより少ない行を持つべきスキーマの場合、異なる行数で別々に生成することをお勧めします。
ユースケース
ユーザー、カテゴリ、投稿、コメントを持つブログプラットフォームを構築しています。完全なコンテンツ階層をテストできる開発データベースを素早くセットアップするために、単一の操作で4つすべてのテーブルにテストデータを投入する必要があります。