Versão: v2.6.0
create
Criar uma nova tabela.
create($table, $columns, $options)
table [string]
O nome da tabela a ser criada.
columns [array]
As definições de coluna para a nova tabela.
options [array/string] (opcional)
Opções adicionais a serem aplicadas ao criar a tabela.
Valor de retorno
[PDOStatement] A instância PDOStatement da consulta executada.
Amostra Básica
Defina cada coluna como uma matriz. Medoo combinará as partes em uma definição de coluna 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 )
Coluna de identidade
Adicione
"@id" como um item da lista para definir uma chave primária inteira gerada automaticamente com o nome id. Use outro nome após @, como "@account_id", para personalizar o nome da coluna. O Medoo traduz o marcador para a definição adequada ao tipo de banco de dados atual.$database->create("account", [
"@id",
"email" => [
"VARCHAR(255)",
"NOT NULL"
]
]);
| Banco de dados | Definição gerada 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 |
Apenas um marcador de identidade é permitido. A mesma coluna não pode ser declarada também como uma definição de coluna comum.
Avançado
Você também pode passar strings brutas como definições de coluna para opções adicionais. A sintaxe
<column_name> é suportada como um atalho para citações de 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