Přeskočit na obsah

JSON na SQL CREATE TABLE

Změní JSON objekt nebo pole objektů na příkaz SQL CREATE TABLE.

Vstup
Výstup

JSON na SQL CREATE TABLE

Vložte JSON objekt nebo pole JSON objektů a tento nástroj vytvoří z něj připravený SQL příkaz CREATE TABLE — místo ručního psaní každého sloupce můžete zkopírovat vzorek z API odpovědi nebo exportovaného záznamu a získat tak počáteční schéma.

Typy sloupců se odvozují z konkrétních hodnot: celá čísla se stanou INTEGER, čísla s desetinnou částí se stanou DECIMAL, true/false se stanou BOOLEAN, řetězce podobné 2024-01-15 nebo 2024-01-15T10:30:00Z se stanou DATE nebo TIMESTAMP a všechno ostatní se stane VARCHAR s odhadovanou délkou, případně TEXT od 255 znaků. Pole označené NOT NULL je takové, které se vyskytuje a není nikdy null v každém vloženém záznamu; pole pojmenované id se stane PRIMARY KEY. Zvolte dialekt — ANSI SQL, MySQL, PostgreSQL, SQLite nebo SQL Server — aby odpovídal malým rozdílům v názvech typů. Vnořené objekty je možné rozbalit na sloupce s předponou (address.city se stane address_city) nebo ponechat jako jediný JSON sloupec, a "Převést názvy na snake_case" změní klíče JSON v camelCase na konvenční názvy sloupců SQL.

S více než jedním záznamem zapnutí "Přidat příkazy INSERT" přidá jeden INSERT na každý záznam pod CREATE TABLE, s použitím stejných odvozených sloupců — je to praktické na vyplňování testovacích databází z JSON fixtur. Odvození se vždy dívá na všechny vložené záznamy, ne jen na první, takže pole, které se někdy vyskytuje, je správně ponechané jako nullable místo nesprávného hádání.

Všechno běží v tvém prohlížeči. JSON, který vložíš, a schéma z něj vygenerovaná se nikdy nikam neposílají — to je důležité, pokud ukázkové údaje pocházejí z produkčního exportu. Zkopíruj výsledek, stáhni ho jako soubor .txt nebo pošli výstup zpět na vstup, aby si mohl schému dále zdokonalit.

Časté dotazy

Jak se rozhoduje o typech sloupců?
Každý sloupec se odvozuje z každé hodnoty viditelné pro toto pole ve všech vložených záznamech — ne jen z prvního. Pole se smíšenými typy (číslo v jednom záznamu, řetězec v jiném) se vrátí do textového sloupce, protože to je jediný typ, který bezpečně pojme oba.
Co se stane s polem pojmenovaným "id"?
Sloupec pojmenovaný id (po převodu na snake_case, pokud je zapnutý) se stane PRIMARY KEY. Syntaxe auto-increment nebo identity se poměrně liší mezi dialekty, takže se vynechá — přidej ji sám, když si vybral strategii.
Jaký je rozdíl mezi dvěma možnostmi vnořených objektů?
"Rozbalit s podtržítkem" změní vnořený objekt jako address: { city } na samostatný sloupec address_city. "Ponechat jako JSON sloupec" uloží celý vnořený objekt jako jeden JSON (nebo textový) sloupec místo toho. Pole se vždy uchovávají jako jediný JSON/textový sloupec, protože jeden řádek nemůže obsahovat seznam s proměnlivou délkou.
Může vygenerovat i data k vložení spolu s tabulkou?
Ano. Zapni "Přidat příkazy INSERT" a pokud si vložil pole objektů, pod CREATE TABLE se přidá jeden příkaz INSERT na záznam, s použitím již odvozených sloupců.
Je můj JSON někam nahráván?
Ne. Parsování, odvození typů a generování SQL se všechno děje lokálně v tvém prohlížeči — tvůj JSON a schéma z něj odvozená nikdy neopustí tvoje zařízení.