L'instruction `INSERT` de PostgreSQL est utilisée pour ajouter de nouvelles tables dans un tableau spécifique. Il s'agit d'une opération fondamentale pour alimenter et mettre à jour les bases de données avec de nouvelles informations.
Utilisation
La syntaxe de base de l'instruction `INSERT` est utilisée lorsque vous devez ajouter de nouveaux tableaux. Il spécifie le nom du tableau, les tableaux dans lesquels insérer des données et les valeurs correspondantes.
sql
INSERTINTOtable_name(column1, column2,...)VALUES(value1, value2,...);Propulsé par
Dans cette syntaxe, `nom_table` est le tableau cible, `column1, column2, ...` sont les tableaux à recevoir les données, et `value1, value2, ...` sont les valeurs réelles des données à insérer.
Cet exemple insère une seule ligne dans le tableau `employees` avec les valeurs `first_name`, `last_name`, et `email`.
2. Insérer plusieurs lignes
sql
INSERTINTOproducts(product_name, price)VALUES('Product A',10.99),('Product B',15.49);Propulsé par
Ici, deux tableaux sont insérés dans le tableau `products` en une seule instruction, chacun avec un `nom_du_produit` et un `prix`.
3. Insérer avec une sous-requête
sql
INSERTINTOsales(product_id, quantity)SELECT product_id,5FROM products
WHERE product_name ='Product C';Propulsé par
Cet exemple insère des données dans le tableau `sales` en sélectionnant `product_id` dans le tableau `products` où le `product_name` est 'Product C', en fixant la `quantity` à 5.
4. Gestion des doublons avec ON CONFLICT
sql
INSERTINTOusers(username, email)VALUES('jane_doe','[email protected]')ONCONFLICT(username)DOUPDATESET email =EXCLUDED.email;Propulsé par
Cet exemple montre comment gérer les doublons potentiels en mettant à jour le `email` si le `username` existe déjà dans le tableau `users`.
5. Utilisation de la clause RETURNING
sql
INSERTINTOorders(customer_id, order_date)VALUES(123,'2023-10-11')RETURNING order_id;Propulsé par
La clause `RETURNING` est utilisée pour retourner le `order_id` de la ligne nouvellement insérée, ce qui est particulièrement utile avec les champs auto-incrémentés.
Conseils et bonnes pratiques
Spécifiez les colonnes de manière explicite. Dressez toujours la liste des tableaux dans une instruction `INSERT` afin d'assurer la clarté et de maintenir la compatibilité en cas de modification de la structure de la table.
Validez les types de données. Assurez-vous que les valeurs insérées correspondent aux types de données des colonnes.
Utilisez les transactions pour les encarts en vrac. Enveloppez plusieurs opérations `INSERT` dans une transaction pour assurer l'atomicité et améliorer les performances. Par exemple :
sql
BEGIN;INSERTINTOproducts(product_name, price)VALUES('Product C',12.99);INSERTINTOproducts(product_name, price)VALUES('Product D',18.49);COMMIT;Propulsé par
Gérer les doublons. Utilisez `ON CONFLICT` pour traiter les conflits de clés potentiels, et non pas `INSERT ...'. ON DUPLICATE KEY UPDATE`, qui est la syntaxe de MySQL.
Exploitez judicieusement les sous-requêtes. Utilisez des sous-requêtes pour l'insertion dynamique de données provenant d'autres tableaux afin de maintenir l'intégrité et la cohérence des données.
L'instruction `INSERT` de PostgreSQL est utilisée pour ajouter de nouvelles tables dans un tableau spécifique. Il s'agit d'une opération fondamentale pour alimenter et mettre à jour les bases de données avec de nouvelles informations.
Utilisation
La syntaxe de base de l'instruction `INSERT` est utilisée lorsque vous devez ajouter de nouveaux tableaux. Il spécifie le nom du tableau, les tableaux dans lesquels insérer des données et les valeurs correspondantes.
Dans cette syntaxe, `nom_table` est le tableau cible, `column1, column2, ...` sont les tableaux à recevoir les données, et `value1, value2, ...` sont les valeurs réelles des données à insérer.
Exemples
1. Insertion de base
Cet exemple insère une seule ligne dans le tableau `employees` avec les valeurs `first_name`, `last_name`, et `email`.
2. Insérer plusieurs lignes
Ici, deux tableaux sont insérés dans le tableau `products` en une seule instruction, chacun avec un `nom_du_produit` et un `prix`.
3. Insérer avec une sous-requête
Cet exemple insère des données dans le tableau `sales` en sélectionnant `product_id` dans le tableau `products` où le `product_name` est 'Product C', en fixant la `quantity` à 5.
4. Gestion des doublons avec ON CONFLICT
Cet exemple montre comment gérer les doublons potentiels en mettant à jour le `email` si le `username` existe déjà dans le tableau `users`.
5. Utilisation de la clause RETURNING
La clause `RETURNING` est utilisée pour retourner le `order_id` de la ligne nouvellement insérée, ce qui est particulièrement utile avec les champs auto-incrémentés.
Conseils et bonnes pratiques