Comment puis-je ajouter une colonne dans une table SQLite si et uniquement si la même colonne n'existe pas dans la table? P>
Utilisation de alter Table code> Je suis capable de créer une nouvelle colonne, mais je veux savoir comment vérifier si cette colonne existe déjà dans la table ou non? P>
4 Réponses :
Vous pouvez afficher les colonnes de table à l'aide de «Nom de .schema» P>
SQLite renvoie une erreur comme "Non Telle colonne: FOO" Si la table ne contient pas la colonne:
select sql from sqlite_master where tbl_name = 'YOURTABLE' and sql like '%"foo" CHAR%'; -- or whatever type
Il n'y a aucun moyen (que je sache) de tout faire dans une seule requête SQLite. Vous devez utiliser le code d'application pour gérer le si / elseness.
Vérifiez si la table existe ou non: p> Vérifiez si la colonne existe dans la table ou maintenant p> xxx pré> Cependant, une meilleure approche peut être une meilleure approche de la base de données de base de données basée sur les versions de schéma que votre demande maintient (par exemple, une déclaration de table d'alter spécifique à partir de la version 1 à 2 de Schema): P> pragma user_version;
Il semble que cela soit impossible de vérifier si la colonne n'existe pas et addindg la nouvelle colonne d'une commande d'une seule commande, car SQLite ne prend pas en charge "sinon existant" pour la colonne. "Si ce n'est pas existant" ne fonctionne que sur la table.
Voici ce que je vais faire:
Vous pouvez afficher les colonnes de table à l'aide de '.schema Tablename'
@krakover n'est pas une réponse?
@goresplatter en fonction de ce qu'il tente d'atteindre. J'ai expliqué comment éviter le problème, pas comment le résoudre .. \
@krakover Je ne vois aucun problème à éviter, mais à une question de déterminer la présence d'une colonne. Ce qui peut être déterminé à l'aide de votre commentaire. Mais c'est probablement ot.
Dupliqué possible de Alter Table Ajouter une colonne si elle n'existe pas dans SQLite a>