Версія: 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 )
Стовпець ідентифікатора
Додайте
"@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 |
Дозволено лише один маркер ідентифікатора. Цей самий стовпець не можна одночасно оголошувати звичайним визначенням стовпця.
Розширений приклад
Ви також можете передавати необроблені рядки як визначення стовпців для додаткових параметрів. Синтаксис
<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