sourceコマンドでテキストファイルからSQLを実行する。
- MySQLにログイン
- C:\ProgramData\Temp 等にsourceファイルを保存する
- sourceコマンドを実行する
sourceファイルを保存
C:\ProgramData\Temp などにsourceファイルを保存する
sourceコマンド
【ポイント】
コマンドプロンプトにsourceファイルをドラッグ&ドロップするとフルパスが自動入力される。
sql
source C:\ProgramData\Temp\ファイル名.sql
- sourceファイルの拡張子は.txtでも.dllでも.sqlでもOK。
- 実行結果が成功なら、Query OK,と表示される。
sourceファイル 中身の例(データベースとテーブル定義)
sql
-- ※1
DROP DATABASE IF EXISTS `サンプルデータベース`;
CREATE DATABASE `サンプルデータベース` COLLATE utf8mb4_ja_0900_as_cs_ks;
-- ※2
USE `サンプルデータベース`;
-- ※3
DROP TABLE IF EXISTS `サンプルテーブル`;
CREATE TABLE `サンプルテーブル` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`flag_display` BIT(1) default 1,
`registration_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`列名ID`)
) COLLATE utf8mb4_ja_0900_as_cs_ks;
- ※1 もし既に
サンプルデータベース
が存在していたら消す - ※2 USEがないと「ERROR 1046 (3D000) at line 10: No database selected」が表示される。
- ※3 列名IDは「AUTO‗INCREMENT」を設定しているが、必要ないなら、外しても良い。
- ※3 テーブル内定義にミスがあるとDBのみ作成されて、テーブルは作成されない。
→例えば、intのDEFAULTに" "を設定すると、型が合わないのでエラーとなる。 - デフォルトの値を付けたい場合は「DATETIME DEFAULT CURRENT_TIMESTAMP」のように設定する。
→【公式】https://www.dbonline.jp/mysql/table/index6.html
→【参考】https://mikepon.jp/mysql-create-update-at/
外部キー設定する場合
FOREIGN KEY 外部キー名(子カラム名) REFERENCES 親テーブル名(親カラム名))
項目 | 説明 | |
---|---|---|
FOREIGN KEY | 自分のカラムで外部キーにするもの |
例
CREATE TABLE hogehuga(
/* 中略*/
PRIMARY KEY(sample_id),
FOREIGN KEY hoge_id(hoge_id) REFERENCES hogeTable(hoge_id)),
FOREIGN KEY huga_id(huga_id) REFERENCES hugaTable(huga_id))
)COLLATE utf8mb4_ja_0900_as_cs_ks;
https://www.dbonline.jp/mysql/table/index11.html
https://www.techscore.com/tech/sql/SQL3/03_04.html/