UTILS.
Privat von Anfang an
🗄

JSON zu SQL CREATE TABLE

Leiten Sie aus einem JSON-Array von Objekten ein SQL CREATE TABLE (und optionale INSERTs) ab und wählen Sie die Spaltentypen automatisch für MySQL, PostgreSQL oder SQLite.

Deine Dateien bleiben auf diesem Gerät

Dateien werden im Browser verarbeitet, nie hochgeladen. Die Website lädt den benötigten Code und die Ressourcen herunter. Ohne Konto und Tracker.

Speichere dieses Tool über Herunterladen als einzelne HTML-Datei zur Offline-Nutzung.

Datenschutz →
— Ausgabe erscheint hier —

Über dieses Tool

Das Tool JSON zu SQL CREATE TABLE liest ein JSON-Array von Objekten (oder ein einzelnes Objekt) und leitet eine passende SQL-Tabellendefinition ab, wobei es den Typ jeder Spalte aus den tatsächlich gesehenen Werten wählt. Es läuft vollständig in Ihrem Browser — das JSON wird mit dem nativen JSON.parse geparst und verlässt nie Ihr Gerät — sodass Sie einen API-Dump oder einen Datenbankexport einfügen und eine Tabelle in einem Schritt erstellen können.

Spaltentypen werden pro Feld über alle Zeilen hinweg abgeleitet: Werte, die alle ganze Zahlen sind, werden zu INT (BIGINT, wenn ein Wert 2.147.483.647 überschreitet), Zahlen mit Dezimalstellen werden zu DECIMAL(p,s), dimensioniert nach den breitesten von Ihnen angegebenen Ganzzahl- und Nachkommastellenzahlen (oder DOUBLE / REAL, wenn Sie den Float-Modus wählen), Booleans werden auf TINYINT(1)/BOOLEAN abgebildet, ISO-8601-Strings auf DATETIME oder DATE, verschachtelte Objekte und Arrays werden zu JSON/JSONB, und übrige Strings werden zu VARCHAR(N), wobei N die nächste Zweierpotenz über dem längsten Wert ist (TEXT, sobald diese 255 überschreitet). Eine Spalte, die in einer Zeile null oder fehlend ist, bleibt NULLABLE; andernfalls ist sie NOT NULL. Eine eindeutige, nicht-null Spalte namens id oder uuid wird zum PRIMARY KEY hochgestuft, mit AUTO_INCREMENT / SERIAL / AUTOINCREMENT für Ganzzahl-Schlüssel.

Ein Dialekt-Umschalter schreibt die Typen für MySQL, PostgreSQL (SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION) oder SQLite (INTEGER / REAL / TEXT-Affinitäten) um und setzt Bezeichner mit dem richtigen Trennzeichen in Anführungszeichen (Backticks für MySQL, doppelte Anführungszeichen sonst). Aktivieren Sie die INSERTs-Option, um auch eine INSERT-Anweisung pro Zeile auszugeben, mit für den gewählten Dialekt escapten und zitierten Strings, Booleans, Zahlen und JSON-Werten.

Häufig gestellte Fragen

Welche Eingabe erwartet es?
Ein JSON-Array von flachen Objekten, etwa Zeilen aus einer API oder einem Export, oder ein einzelnes JSON-Objekt, das als Ein-Zeilen-Tabelle behandelt wird. Alle Schlüssel über die Zeilen hinweg werden vereinigt, um die Spalten zu bilden; Nicht-Objekt-Elemente werden abgelehnt.
Wie werden Spaltentypen gewählt?
Pro Spalte, aus jedem gesehenen Wert: alle-Ganzzahl zu INT/BIGINT, Dezimalzahlen zu DECIMAL(p,s) oder DOUBLE, Booleans zu TINYINT(1)/BOOLEAN, ISO-Datum-Zeiten zu DATETIME/DATE, Objekte/Arrays zu JSON und andere Strings zu VARCHAR(N) (TEXT über 255 Zeichen).
Welche SQL-Dialekte werden unterstützt?
MySQL, PostgreSQL und SQLite. Der Dialekt-Umschalter schreibt die Typnamen um (SERIAL, JSONB, TIMESTAMP für Postgres; INTEGER/REAL/TEXT-Affinitäten für SQLite) und verwendet die korrekte Bezeichner-Quotierung und Auto-Increment-Syntax.
Wie wird der Primärschlüssel bestimmt?
Wenn eine Spalte namens id oder uuid vorhanden und in jeder Zeile nicht-null mit eindeutigen Werten ist, wird sie als PRIMARY KEY markiert. Ein Ganzzahl-Schlüssel erhält außerdem AUTO_INCREMENT (MySQL), SERIAL (PostgreSQL) oder AUTOINCREMENT (SQLite).

Weitere Tools