Pourquoi un convertisseur de dialectes SQL ?
Chaque base a sa propre saveur de SQL. PostgreSQL utilise `SERIAL` pour une clé auto-incrémentée, MySQL utilise `AUTO_INCREMENT`, MSSQL utilise `IDENTITY(1,1)`, Oracle utilise `GENERATED AS IDENTITY`. Le SQL standard est théorique : en pratique, chaque éditeur a greffé ses propres extensions.
Vous collez une requête issue d'une base, vous choisissez le dialecte source et le dialecte cible, et l'outil réécrit ce qui diffère : types de colonnes (TINYINT vs BOOLEAN vs BIT vs NUMBER(1)), clés auto-incrémentées, pagination (`LIMIT/OFFSET` vs `TOP` vs `FETCH NEXT`), fonctions de temps (`NOW()` vs `GETDATE()` vs `SYSDATE`), concaténation de chaînes (`||` vs `CONCAT()`), quoting d'identifiants (`` `id` `` vs `[id]` vs `"id"`).
À droite, vous voyez la liste des changements appliqués avec une brève raison. Pas de magie, juste un jeu de règles correct qui couvre environ 80 % du portage de schémas simples.
Mode d'emploi
- Choisissez le dialecte source (d'où vient la requête) et le dialecte cible (où vous voulez qu'elle tourne).
- Collez votre SQL dans le panneau de gauche. Cela peut être un `CREATE TABLE`, `SELECT`, `INSERT`, peu importe.
- À droite, vous obtenez le résultat converti, automatiquement formaté pour le dialecte cible.
- En dessous, vous voyez la liste des changements effectués : chaque règle avec un diff « avant / après » et une courte étiquette.
- Copiez le résultat avec le bouton Copier. Puis vérifiez la logique (les regex ne peuvent pas tout faire, des ajustements manuels sont parfois nécessaires).
- Utilisez les flèches d'inversion pour permuter source et cible. Pratique pour convertir dans les deux sens.
Quand c'est utile
Scénarios courants :
- Migration de MySQL vers PostgreSQL. Le classique : l'entreprise grandit, MySQL ne suffit plus, on passe à Postgres. Le schéma doit être réécrit. Cet outil prend en charge 80 % du travail ingrat.
- Support de deux bases dans un seul ORM. Vous travaillez avec Prisma ou Drizzle, le client tourne sous MSSQL, votre dev local est PostgreSQL. Il vous faut deux versions du script d'init.
- Construction de tables BigQuery depuis une base opérationnelle. Le schéma MySQL doit être adapté à BigQuery, qui n'a pas d'AUTO_INCREMENT et présente de nombreuses différences de types.
- Revue de code d'une requête venant d'un collègue qui écrit pour un autre moteur. Vérification rapide qu'elle tournera sur votre base.
- Apprendre les différences entre dialectes. Collez une requête simple, changez le dialecte cible, observez ce qui change. Mieux que de lire une doc aride.
- Vérification de portabilité d'un schéma existant. La conversion met en évidence les endroits où vous utilisez des constructions spécifiques à un éditeur.
Après conversion, formatez la sortie avec notre formateur SQL. Vous voulez un schéma ORM à la place ? Voir le convertisseur SQL vers ORM.