UTILS.
100 % im Browser
🗄

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.

— 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