DE Deutsch
Version: v2.6.0

create

Eine neue Tabelle erstellen.

create($table, $columns, $options)
Rückgabewert
[PDOStatement] Die PDOStatement Instanz für die ausgeführte Abfrage.

Grundlagen

Definieren Sie jede Spalte als Array. Medoo kombiniert die Teile zu einer vollständigen Spaltendefinition.
$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-Spalte

Fügen Sie "@id" als Listenelement hinzu, um einen automatisch erzeugten ganzzahligen Primärschlüssel namens id zu definieren. Mit einem anderen Namen nach @, zum Beispiel "@account_id", können Sie den Spaltennamen anpassen. Medoo übersetzt den Marker in die passende Definition für den aktuellen Datenbanktyp.
$database->create("account", [
	"@id",
	"email" => [
		"VARCHAR(255)",
		"NOT NULL"
	]
]);
Datenbank Erzeugte Definition für @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

Es ist nur ein Identity-Marker zulässig. Dieselbe Spalte darf nicht zusätzlich als reguläre Spaltendefinition angegeben werden.

Erweitert

Sie können auch Rohzeichenfolgen als Spaltendefinitionen für zusätzliche Optionen übergeben. Die <column_name>-Syntax wird als Abkürzung für die Anführungszeichen von Bezeichnern unterstützt.
$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