Was dieses Werkzeug tut
Aus einer JSON-Probe wird ein CREATE TABLE.
{ "id": 1, "firstName": "Ada", "score": 9.5, "address": { "city": "Paris" } }
CREATE TABLE `root` (
`id` BIGINT NOT NULL,
`first_name` VARCHAR(255) NOT NULL,
`score` DOUBLE NOT NULL,
`address` JSON NOT NULL
);
Spaltennamen stehen in snake_case und in Backticks, ein Schlüsselwort oder ein Bindestrich im Schlüssel ist also kein Problem. Zwei Schlüssel, die denselben Namen ergeben, bekommen ein Suffix statt verschmolzen zu werden.
Eine Spalte nach Maß des Werts
Zeichenketten werden VARCHAR(255) — außer die Probe zeigt, dass sie nicht hineinpassen:
{ "bio": "…301 Zeichen…" }
`bio` TEXT NOT NULL
MySQL im strikten Modus — Vorgabe seit 5.7 — weist einen Wert, der länger als die Spalte ist, mit Fehler 1406 ab. Ein VARCHAR(255) hätte Ihnen hier eine Tabelle gegeben, die das erzeugende Dokument nicht fasst. Ein echter Fehler, beim Schreiben dieser Seite gefunden und behoben.
Die Grenze stammt vom längsten Wert der Probe: ein Boden, kein Versprechen. Sind Ihre Produktionswerte länger als das Eingefügte, verbreitern Sie die Spalte.
Alle Zeilen, nicht nur die erste
[{ "a": 1 }, { "a": 2, "b": "x" }]
CREATE TABLE `root_item` (
`a` BIGINT NOT NULL,
`b` VARCHAR(255) NULL
);
Die Tabelle entstand bisher allein aus dem ersten Objekt: die zweite Zeile Ihrer eigenen Probe scheiterte beim Einfügen — Unknown column 'b'. Die Spalten sind nun die Vereinigung aller Objekte, und ein Schlüssel, der in manchen fehlt, ist nullbar — er ist es ja.
Für den Typ gilt dasselbe. Ein Schlüssel, der in einer Zeile 1 und in der nächsten "x" ist, bekam den Typ des ersten Fundes, und der andere Wert hatte keine Spalte mehr; jetzt bekommt er eine JSON-Spalte, die beide fasst. Ein 300 Zeichen langer Wert, der erst in der zehnten Zeile auftaucht, macht die Spalte ebenso zu TEXT, als stünde er in der ersten.
Was nicht erfunden wird
- Kein Primärschlüssel, kein Index, keine Engine- oder Zeichensatzklausel. Alles Entscheidungen über Ihre Daten und Ihren Server; ein Dokument sagt dazu nichts.
NOT NULL, wo ein Wert stand,NULLfür einnullund für einen Schlüssel, der in manchen Zeilen fehlt.- Objekte und Arrays werden
JSON-Spalten. Keine verbundene Tabelle, kein Fremdschlüssel: eine Probe kann keine Beziehung zeigen, und eine zu erfinden hieße drei Vermutungen zu stapeln.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.