#1 Mon 08 November 2021 23:06
- Kiecane
- Participant actif
- Date d'inscription: 31 Oct 2021
- Messages: 91
QGIS: erreur alter table sql
Bonsoir,
Je manipule rarement du SQL sur QGIS mais j'aimerais l'utiliser pour modifier une couche shapefile que j'ai créé. J'aimerais créer une nouvelle colonne dans la table attributaire de cette couche qui contiendrait la surface de chaque polygone qu'elle contient. Voici ce que j'ai écrit :
ALTER TABLE couche_polygone ADD surface REAL(5.5) ;
SELECT id, geometry,
st_area(geometry) as "surface"
from couche_polygone ;
Le problème c'est que lorsque j'appuie sur exécuter, il y a écrit : near "ALTER": syntax error
et je ne comprends pas pourquoi j'obtiens ce message d'erreur.
Je sais que je pourrais simplement modifier ma table attributaire en utilisant la calculatrice des champs mais j'aurais bien aimé le faire de cette manière et comprendre ce que je fais de mal pour que ça ne fonctionne pas.
Merci d'avance pour votre aide !
Hors ligne
#2 Tue 09 November 2021 15:14
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1008
Re: QGIS: erreur alter table sql
Il y a 2 requêtes dans votre procédure :
- 1 modification de structure (ajout de colonne) => ALTER TABLE
- 1 mise à jour de colonne => UPDATE TABLE (et non SELECT)
Du coup ça donnerait ça pour moi :
Code:
ALTER TABLE couche_polygone ADD surface REAL(5.5) ;
Code:
UPDATE couche_polygone SET surface = st_area(geometry);
Sylvain M.
Hors ligne
#3 Wed 10 November 2021 17:39
- Kiecane
- Participant actif
- Date d'inscription: 31 Oct 2021
- Messages: 91
Re: QGIS: erreur alter table sql
Bonsoir,
Merci beaucoup pour votre réponse. J'ai suivi vos instructions mais j'ai à nouveau une erreur qui s'affiche : Query execution error on CREATE TEMP VIEW _tview AS alter table couche_polygone add surface real(5.5): 1 - near "alter": syntax error
Je ne comprends pas ce que cela signifie. J'ai essayé de réaliser les deux instructions ensemble en mettant les ";", et aussi séparément l'une après l'autre mais à chaque fois j'ai une erreur et je ne vois pas pourquoi......
Hors ligne
#4 Thu 11 November 2021 17:10
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1008
Re: QGIS: erreur alter table sql
Désolé, je viens de voir que les couches virtuelles (virtual layers) de QGis n'autorisent pas les requête UPDATE ou ALTER TABLE.
Pour pouvoir faire ce genre de requêtes SQL, il faut être sur une base Spatialite, PostGis, et peut-être en GeoPackage, mais j'ai un doute.
Sylvain M.
Hors ligne