Est-il possible d'obtenir une ligne avec tous les noms de colonnes d'un tableau comme celui-ci ?
|id|foo|bar|age|street|address|
Je n'aime pas utiliser Pragma table_info(bla)
.
Est-il possible d'obtenir une ligne avec tous les noms de colonnes d'un tableau comme celui-ci ?
|id|foo|bar|age|street|address|
Je n'aime pas utiliser Pragma table_info(bla)
.
Oui, vous pouvez le faire en utilisant les commandes suivantes :
sqlite> .headers on
sqlite> .mode column
Le résultat d'une sélection sur votre table sera alors le suivant :
id foo bar age street address
---------- ---------- ---------- ---------- ---------- ----------
1 val1 val2 val3 val4 val5
2 val6 val7 val8 val9 val10
Vous pouvez utiliser des commandes liées à des pragmes dans sqlite comme ci-dessous
pragma table_info("table_name")
--Alternatively
select * from pragma_table_info("table_name")
Si vous avez besoin de noms de colonnes comme id|foo|bar|age|street|address
En fait, votre réponse se trouve dans la question ci-dessous.
select group_concat(name,'|') from pragma_table_info("table_name")
Cela aide pour HTML5 SQLite :
tx.executeSql('SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "your_table_name";', [], function (tx, results) {
var columnParts = results.rows.item(0).sql.replace(/^[^\(]+\(([^\)]+)\)/g, '$1').split(','); ///// RegEx
var columnNames = [];
for(i in columnParts) {
if(typeof columnParts[i] === 'string')
columnNames.push(columnParts[i].split(" ")[0]);
}
console.log(columnNames);
///// Your code which uses the columnNames;
});
Vous pouvez réutiliser la regex dans votre langage pour obtenir les noms des colonnes.
Alternative plus courte :
tx.executeSql('SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "your_table_name";', [], function (tx, results) {
var columnNames = results.rows.item(0).sql.replace(/^[^\(]+\(([^\)]+)\)/g, '$1').replace(/ [^,]+/g, '').split(',');
console.log(columnNames);
///// Your code which uses the columnNames;
});
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.