banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoDataDays 2025

#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

 

Pied de page des forums

Copyright Association GeoRezo