Versión: v2.6.0
create
Crear una nueva tabla.
create($table, $columns, $options)
table [string]
El nombre de la tabla a crear.
columns [array]
Las definiciones de columnas para la nueva tabla.
options [array/string] (opcional)
Opciones adicionales para aplicar al crear la tabla.
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