Comment utiliser : Vérificateur de syntaxe PostgreSQL
- Choisissez votre dialecte de base de données (MySQL, PostgreSQL, SQL Server, SQLite, BigQuery et d'autres).
- Collez ou ouvrez votre SQL : plusieurs instructions séparées par des points-virgules sont acceptées.
- Les erreurs affichent la ligne, la colonne et les jetons attendus, avec l'emplacement fautif mis en évidence.
- Les instructions valides sont listées avec leur type et les tables concernées, accompagnées d'avertissements pour les usages risqués.
Que vérifie un validateur SQL ?
Un validateur SQL (ou vérificateur de syntaxe) analyse votre requête avec la grammaire d'une base de données donnée et indique si elle est bien formée : parenthèses équilibrées, mots-clés dans le bon ordre, expressions valides, virgules entre les colonnes, etc. Cet outil découpe votre script en instructions, analyse chacune séparément afin que vous voyiez toutes les instructions erronées en une seule fois, et indique la ligne et la colonne où l'analyse s'est arrêtée. La grammaire PostgreSQL est sélectionnée par défaut.
Avertissements de bonnes pratiques
| Avertissement | Pourquoi c'est important |
|---|---|
UPDATE / DELETE sans WHERE | Modifie toutes les lignes de la table, ce qui est généralement une erreur. |
SELECT * | Récupère des colonnes dont vous n'avez peut-être pas besoin et casse le code lorsque des colonnes sont ajoutées ou réordonnées. |
INSERT sans liste de colonnes | Dépend de l'ordre des colonnes ; l'ajout d'une colonne le fait échouer. |
LIKE '%…' | Un joker en début de motif ne peut pas utiliser un index classique et entraîne un parcours complet de la table. |
= NULL | N'est jamais vrai ; utilisez IS NULL. |
ORDER BY sans LIMIT dans une sous-requête, ou LIMIT sans ORDER BY | L'ordre des lignes n'est pas garanti sans tri explicite. |
Différences entre dialectes qui provoquent des erreurs
- Guillemets des identifiants — MySQL et MariaDB utilisent les accents graves (
`order`), PostgreSQL, SQLite et le standard SQL utilisent les guillemets doubles, SQL Server utilise les crochets ([order]). - Limitation de lignes —
LIMIT 10dans MySQL, PostgreSQL et SQLite ;TOP 10ouOFFSET … FETCHdans SQL Server. - Upserts —
ON DUPLICATE KEY UPDATE(MySQL) contreON CONFLICT … DO UPDATE(PostgreSQL, SQLite) contreMERGE(SQL Server, Snowflake, BigQuery). - Casts — PostgreSQL accepte
valeur::int; la plupart des autres moteurs nécessitentCAST(valeur AS INT).
Erreurs de syntaxe courantes dans PostgreSQL
PostgreSQL affiche le message « syntax error at or near … » accompagné du jeton où l'analyse s'est arrêtée. Les causes typiques sont les accents graves copiés depuis MySQL (utilisez des guillemets doubles), les guillemets doubles autour de valeurs textuelles (utilisez des apostrophes simples, car les guillemets doubles désignent des identifiants), LIMIT x, y (Postgres attend LIMIT y OFFSET x) et une virgule manquante dans une liste de colonnes.
Rendez votre requête plus lisible avec le formateur SQL, générez des instructions à partir de données avec CSV vers SQL ou JSON vers SQL, et concevez vos tables avec le générateur CREATE TABLE.
Aussi recherché comme : vérificateur syntaxe postgresql, validateur requête postgres, vérifier syntaxe postgresql, erreur syntaxe psql, linter postgres, valider sql postgres, correcteur sql postgresql, vérifier requête sql en ligne.
Outils complémentaires : Vérificateur de syntaxe PostgreSQL
- Validateur SQL — Collez une requête ou un script complet pour en vérifier la syntaxe selon la grammaire de votre base de données.
- Vérificateur de syntaxe MySQL — Validez vos requêtes MySQL avant de les exécuter.
- Excel vers JSON — Ouvrez un classeur .xlsx ou collez directement des cellules depuis Excel ou Google Sheets pour obtenir un JSON propre.
- JSON vers Excel — Transformez un tableau JSON en véritable classeur Excel.
Questions fréquentes
Mon SQL est-il envoyé à un serveur ou à une base de données ?
Un résultat valide signifie-t-il que la requête s'exécutera ?
Pourquoi l'erreur est-elle signalée après mon erreur ?
WHER est souvent interprété comme un alias, de sorte que l'erreur apparaît sur le mot suivant. Vérifiez aussi le jeton qui précède la position signalée.