UTILS.
Standaard privé
🗄

JSON naar SQL CREATE TABLE

Leid een SQL CREATE TABLE (en optionele INSERTs) af uit een JSON-array van objecten, waarbij kolomtypes automatisch worden gekozen voor MySQL, PostgreSQL of SQLite.

Je bestanden blijven op dit apparaat

Bestanden worden in je browser verwerkt, nooit geüpload. De site downloadt de benodigde code en bestanden. Geen accounts of trackers.

Gebruik Downloaden om deze tool als één HTML-bestand op te slaan voor offline gebruik.

Privacy →
— uitvoer verschijnt hier —

Over deze tool

De tool JSON naar SQL CREATE TABLE leest een JSON-array van objecten (of een enkel object) en leidt een bijpassende SQL-tabeldefinitie af, waarbij het type van elke kolom wordt gekozen uit de waarden die het daadwerkelijk ziet. Het draait volledig in je browser — de JSON wordt geparseerd met de native JSON.parse en verlaat je apparaat nooit — dus je kunt een API-dump of een database-export plakken en in één stap een tabel steigeren.

Kolomtypes worden per veld over elke rij afgeleid: waarden die allemaal gehele getallen zijn worden INT (BIGINT wanneer een waarde 2.147.483.647 overschrijdt), getallen met decimalen worden DECIMAL(p,s) gedimensioneerd naar de breedste integer- en fractiecijfer-aantallen die je opgaf (of DOUBLE / REAL wanneer je de float-modus kiest), booleans worden afgebeeld op TINYINT(1)/BOOLEAN, ISO 8601-strings op DATETIME of DATE, geneste objecten en arrays worden JSON/JSONB, en resterende strings worden VARCHAR(N) waarbij N de eerstvolgende macht van twee boven de langste waarde is (TEXT zodra dat 255 overschrijdt). Een kolom die in enige rij null of ontbrekend is blijft NULLABLE; anders is deze NOT NULL. Een unieke, niet-null kolom genaamd id of uuid wordt gepromoveerd tot de PRIMARY KEY, met AUTO_INCREMENT / SERIAL / AUTOINCREMENT toegevoegd voor integer-sleutels.

Een dialect-schakelaar herschrijft de types voor MySQL, PostgreSQL (SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION), of SQLite (INTEGER / REAL / TEXT-affiniteiten) en voorziet identifiers van aanhalingstekens met de juiste delimiter (backticks voor MySQL, dubbele aanhalingstekens elders). Zet de INSERTs-optie aan om ook één INSERT-statement per rij te produceren, met strings, booleans, getallen en JSON-waarden escaped en van aanhalingstekens voorzien voor het gekozen dialect.

Veelgestelde vragen

Welke invoer verwacht het?
Een JSON-array van platte objecten, zoals rijen uit een API of export, of een enkel JSON-object dat als een tabel met één rij wordt behandeld. Alle sleutels over de rijen worden verenigd om de kolommen te vormen; niet-object-elementen worden afgewezen.
Hoe worden kolomtypes gekozen?
Per kolom, uit elke geziene waarde: volledig-integer naar INT/BIGINT, decimalen naar DECIMAL(p,s) of DOUBLE, booleans naar TINYINT(1)/BOOLEAN, ISO datum-tijden naar DATETIME/DATE, objecten/arrays naar JSON, en andere strings naar VARCHAR(N) (TEXT boven 255 tekens).
Welke SQL-dialecten worden ondersteund?
MySQL, PostgreSQL en SQLite. De dialect-schakelaar herschrijft de typenamen (SERIAL, JSONB, TIMESTAMP voor Postgres; INTEGER/REAL/TEXT-affiniteiten voor SQLite) en gebruikt de juiste identifier-aanhalingstekens en auto-increment-syntaxis.
Hoe wordt de primary key bepaald?
Als een kolom genaamd id of uuid aanwezig en niet-null is in elke rij met unieke waarden, wordt deze als PRIMARY KEY gemarkeerd. Een integer-sleutel krijgt ook AUTO_INCREMENT (MySQL), SERIAL (PostgreSQL), of AUTOINCREMENT (SQLite).

Meer tools