ES Español
Versión: v2.6.0

create

Crear una nueva tabla.

create($table, $columns, $options)
Valor devuelto
[PDOStatement] La instancia PDOStatement de la consulta ejecutada.

Muestra básica

Defina cada columna como una matriz. Medoo combinará las partes en una definición de columna completa.
$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
)

Columna de identidad

Añada "@id" como elemento de la lista para definir una clave primaria entera autogenerada llamada id. Use otro nombre después de @, como "@account_id", para personalizar el nombre de la columna. Medoo traduce el marcador a la definición adecuada para el tipo de base de datos actual.
$database->create("account", [
	"@id",
	"email" => [
		"VARCHAR(255)",
		"NOT NULL"
	]
]);
Base de datos Definición generada para @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

Solo se permite un marcador de identidad. La misma columna no debe declararse también como una definición de columna normal.

Avanzado

También puede pasar cadenas sin formato como definiciones de columnas para obtener opciones adicionales. La sintaxis <column_name> se admite como acceso directo para citar identificadores.
$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