Version: v2.6.0
create
Créer une nouvelle table.
create($table, $columns, $options)
table [string]
Le nom de la table à créer.
columns [array]
Les définitions de colonnes pour la nouvelle table.
options [array/string] (facultatif)
Options supplémentaires à appliquer lors de la création de la table.
Valeur de retour
[PDOStatement] Instance PDOStatement pour la requête exécutée.
Échantillon de base
Définissez chaque colonne comme un tableau. Medoo combinera les parties dans une définition de colonne complète.
$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 )
Colonne d’identité
Ajoutez
"@id" comme élément de la liste pour définir une clé primaire entière auto-générée nommée id. Utilisez un autre nom après @, comme "@account_id", pour personnaliser le nom de la colonne. Medoo traduit le marqueur dans la définition adaptée au type de base de données actuel.$database->create("account", [
"@id",
"email" => [
"VARCHAR(255)",
"NOT NULL"
]
]);
| Base de données | Définition générée pour @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 |
Un seul marqueur d’identité est autorisé. La même colonne ne doit pas être déclarée également comme une définition de colonne ordinaire.
Avancé
Vous pouvez également transmettre des chaînes brutes en tant que définitions de colonnes pour des options supplémentaires. La syntaxe
<column_name> est prise en charge comme raccourci pour la citation d'identifiant.$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