JA 日本語
バージョン: v2.6.0

create

新しいテーブルを作成します。

create($table, $columns, $options)
戻り値
[PDOStatement] 実行されたクエリの PDOStatement インスタンス。

基本例

各列を配列で定義します。Medoo はその要素を組み合わせて、完全な列定義を生成します。
$database->create("account", [
	"id" => [
		"INT",
		"NOT NULL",
		"AUTO_INCREMENT",
		"PRIMARY KEY"
	],
	"first_name" => [
		"VARCHAR(30)",
		"NOT NULL"
	]
]);
CREATE TABLE IF NOT EXISTS account (
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	first_name VARCHAR(30) NOT NULL
)

Identity カラム

リスト要素として "@id" を追加すると、id という名前の自動生成される整数型主キーを定義できます。カラム名を変更するには、"@account_id" のように @ の後へ別の名前を指定します。Medoo はこのマーカーを現在のデータベース形式に適した定義へ変換します。
$database->create("account", [
	"@id",
	"email" => [
		"VARCHAR(255)",
		"NOT NULL"
	]
]);
データベース @id から生成される定義
MySQL / MariaDB id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
PostgreSQL id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
SQLite id INTEGER PRIMARY KEY AUTOINCREMENT
MSSQL id BIGINT IDENTITY(1,1) PRIMARY KEY
Oracle id NUMBER(19) GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
Sybase id BIGINT IDENTITY PRIMARY KEY

Identity マーカーは 1 つだけ指定できます。同じカラムを通常のカラム定義として重複して宣言することはできません。

高度な定義

追加オプションの列定義として生の文字列を渡すこともできます。<column_name> 構文は、識別子をクォートするためのショートカットとして使えます。
$database->create("account", [
	"id" => [
		"INT",
		"NOT NULL",
		"AUTO_INCREMENT"
	],
	"email" => [
		"VARCHAR(70)",
		"NOT NULL",
		"UNIQUE"
	],
	"PRIMARY KEY (<id>)"
], [
	"ENGINE" => "MyISAM",
	"AUTO_INCREMENT" => 200
]);
CREATE TABLE IF NOT EXISTS account (
	id INT NOT NULL AUTO_INCREMENT,
	email VARCHAR(70) NOT NULL UNIQUE,
	PRIMARY KEY (`id`)
)
ENGINE = MyISAM,
AUTO_INCREMENT = 200