バージョン: v2.6.0
create
新しいテーブルを作成します。
create($table, $columns, $options)
table [string]
作成するテーブル名。
columns [array]
新しいテーブルのカラム定義。
options [array/string] (省略可)
テーブル作成時に適用する追加オプション。
戻り値
[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