RU Русский
Версия: 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
)

Столбец идентификатора

Добавьте "@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