Versione: v2.6.0
create
Creare una nuova tabella.
create($table, $columns, $options)
table [string]
Il nome della tabella da creare.
columns [array]
Le definizioni delle colonne per la nuova tabella.
options [array/string] (facoltativo)
Opzioni aggiuntive da applicare durante la creazione della tabella.
Valore restituito
[PDOStatement] L'istanza PDOStatement per la query eseguita.
Campione di base
Definire ciascuna colonna come un array. Medoo combinerà le parti in una definizione di colonna 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 )
Colonna identity
Aggiungi
"@id" come elemento dell’elenco per definire una chiave primaria intera generata automaticamente chiamata id. Usa un altro nome dopo @, ad esempio "@account_id", per personalizzare il nome della colonna. Medoo traduce il marcatore nella definizione appropriata per il tipo di database corrente.$database->create("account", [
"@id",
"email" => [
"VARCHAR(255)",
"NOT NULL"
]
]);
| Database | Definizione generata per @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 |
È consentito un solo marcatore identity. La stessa colonna non deve essere dichiarata anche come normale definizione di colonna.
Avanzato
Puoi anche passare stringhe grezze come definizioni di colonna per opzioni aggiuntive. La sintassi
<column_name> è supportata come scorciatoia per le virgolette degli identificatori.$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