Aller au contenu
Tout en local

Convertisseur de dialecte SQL

Réécrire SQL entre les syntaxes PostgreSQL, MySQL, SQLite et SQL Server.

Entrée
Sortie

Convertisseur de dialecte SQL

Collez une requête écrite pour une base de données et récupérez-la réécrite pour une autre. Le convertisseur couvre la syntaxe des limites de lignes, les fonctions courantes de date et chaîne, la concaténation de chaînes, les guillemets d'identificateurs et les types de colonnes entre PostgreSQL, MySQL, SQLite et SQL Server — utile lors de la migration d'un projet de MySQL à PostgreSQL, du portage d'un script écrit pour SQL Server vers SQLite, ou simplement de la vérification de l'apparence d'une requête dans un autre moteur.

Le dialecte source et le dialecte cible choisissent les deux extrémités de la conversion. Les cases à cocher ci-dessous activent et désactivent les conversions individuelles : normaliser les guillemets d'identificateurs permute les guillemets doubles, les accents graves et les crochets pour le style propre de la cible ; convertir la clause LIMIT bascule entre LIMIT, TOP et OFFSET…FETCH FIRST sans jamais perdre silencieusement un décalage ; convertir les fonctions de date et chaîne réécrit NOW()/GETDATE()/datetime('now'), LENGTH()/LEN(), SUBSTRING()/SUBSTR() et COALESCE()/IFNULL()/ISNULL() ; convertir la concaténation de chaînes bascule entre || et CONCAT()/+ ; convertir les types de colonnes mappe SERIAL, AUTO_INCREMENT, IDENTITY(1,1), BOOLEAN, TEXT et les déclarations de type TIMESTAMP à leur équivalent le plus proche. Conserver les commentaires contrôle si les commentaires -- et /* */ survivent à la réécriture.

Certaines constructions n'ont vraiment pas d'équivalent — RETURNING et ON CONFLICT de PostgreSQL, ou ON DUPLICATE KEY UPDATE de MySQL — et plutôt que de deviner une réécriture, l'outil les laisse en place et les répertorie dans un bloc d'avertissements ajouté à la sortie. Il réécrit le texte d'instruction plutôt que d'analyser un plan d'exécution complet, alors vérifiez le résultat avant de l'exécuter contre une base de données réelle, en particulier pour les sous-requêtes imbriquées ou le formatage inhabituel. Les scripts multi-instructions fonctionnent aussi : chaque instruction, séparée par des points-virgules, est gérée seule.

Tout s'exécute localement dans votre navigateur : aucune requête, nom de table, nom de colonne ou chaîne de connexion n'est jamais envoyé où que ce soit. Copiez le résultat, téléchargez-le en tant que fichier .txt, ou renvoyez directement la sortie à l'entrée pour exécuter une autre passe.

FAQ

Est-ce qu'il analyse réellement le SQL, ou fait-il simplement un remplacement de texte?
Il réécrit les modèles connus — clauses de limite de lignes, fonctions courantes, concaténation, guillemets d'identificateurs et types de colonnes — avec des substitutions de texte ciblées plutôt qu'un analyseur SQL complet, alors vérifiez toujours le résultat avant de l'exécuter sur une base de données.
Qu'arrive-t-il aux constructions qui n'existent pas dans le dialecte cible?
Ils sont laissés en place et listés dans un bloc d'avertissements ajouté à la sortie, comme ON CONFLICT de PostgreSQL lors de la conversion en SQL Server.
Puis-je convertir des scripts multi-instructions?
Oui — chaque instruction, séparée par des points-virgules, est gérée seule, donc un script avec plusieurs CREATE TABLE ou SELECT se convertit en une seule passe.
Mon SQL est-il chargé quelque part?
Non. La conversion s'exécute entièrement dans votre navigateur — vos requêtes, schéma et données ne quittent jamais votre appareil.