UTILS.
۱۰۰٪ در مرورگر
🗄

تبدیل JSON به SQL CREATE TABLE

از یک آرایه JSON از اشیا یک SQL CREATE TABLE (و INSERTهای اختیاری) استنتاج کنید، با انتخاب خودکار نوع ستون‌ها برای MySQL، PostgreSQL یا SQLite.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

ابزار تبدیل JSON به SQL CREATE TABLE یک آرایه JSON از اشیا (یا یک شیء واحد) را می‌خواند و یک تعریف جدول SQL متناظر استنتاج می‌کند، و نوع هر ستون را از مقادیری که واقعاً می‌بیند انتخاب می‌کند. کاملاً در مرورگر شما اجرا می‌شود — JSON با JSON.parse بومی تجزیه می‌شود و هرگز دستگاه شما را ترک نمی‌کند — پس می‌توانید یک dump از API یا یک export از پایگاه داده را بچسبانید و در یک مرحله یک جدول بسازید.

نوع ستون‌ها برای هر فیلد در تمام ردیف‌ها استنتاج می‌شود: مقادیری که همه اعداد صحیح هستند به INT (یا BIGINT هنگامی که هر مقداری از 2,147,483,647 فراتر رود) تبدیل می‌شوند، اعداد با اعشار به DECIMAL(p,s) که به اندازه بیشترین تعداد ارقام صحیح و کسری که ارائه داده‌اید تنظیم می‌شود (یا DOUBLE / REAL هنگامی که حالت float را انتخاب کنید) تبدیل می‌شوند، بولین‌ها به TINYINT(1)/BOOLEAN نگاشت می‌شوند، رشته‌های ISO 8601 به DATETIME یا DATE نگاشت می‌شوند، اشیا و آرایه‌های تودرتو به JSON/JSONB تبدیل می‌شوند، و رشته‌های باقی‌مانده به VARCHAR(N) تبدیل می‌شوند که در آن N نزدیک‌ترین توان دو بالای طولانی‌ترین مقدار است (TEXT هنگامی که از 255 فراتر رود). ستونی که در هر ردیفی null یا غایب باشد NULLABLE باقی می‌ماند؛ در غیر این صورت NOT NULL است. یک ستون یکتا و غیر-null با نام id یا uuid به PRIMARY KEY ارتقا می‌یابد، با AUTO_INCREMENT / SERIAL / AUTOINCREMENT که برای کلیدهای عدد صحیح اضافه می‌شود.

یک کلید تغییر dialect نوع‌ها را برای MySQL، ‏PostgreSQL (SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION)، یا SQLite (affinityهای INTEGER / REAL / TEXT) بازنویسی می‌کند و شناسه‌ها را با جداکننده درست در گیومه قرار می‌دهد (backtick برای MySQL، دابل‌کوتیشن در جاهای دیگر). گزینه INSERTها را روشن کنید تا برای هر ردیف یک دستور INSERT هم تولید شود، با رشته‌ها، بولین‌ها، اعداد و مقادیر JSON که برای dialect انتخاب‌شده escape و در گیومه قرار گرفته‌اند.

پرسش‌های پرتکرار

چه ورودی‌ای انتظار می‌رود؟
یک آرایه JSON از اشیای مسطح، مانند ردیف‌هایی از یک API یا export، یا یک شیء JSON واحد که به‌عنوان یک جدول تک-ردیفی در نظر گرفته می‌شود. همه کلیدها در سراسر ردیف‌ها اجتماع می‌شوند تا ستون‌ها را تشکیل دهند؛ عناصر غیر-شیء رد می‌شوند.
نوع ستون‌ها چگونه انتخاب می‌شوند؟
برای هر ستون، از هر مقدار دیده‌شده: همه-صحیح به INT/BIGINT، اعشارها به DECIMAL(p,s) یا DOUBLE، بولین‌ها به TINYINT(1)/BOOLEAN، تاریخ‌-زمان‌های ISO به DATETIME/DATE، اشیا/آرایه‌ها به JSON، و سایر رشته‌ها به VARCHAR(N) (یا TEXT بالای 255 کاراکتر).
کدام dialectهای SQL پشتیبانی می‌شوند؟
MySQL، ‏PostgreSQL و SQLite. کلید تغییر dialect نام نوع‌ها را بازنویسی می‌کند (SERIAL, JSONB, TIMESTAMP برای Postgres؛ affinityهای INTEGER/REAL/TEXT برای SQLite) و از گیومه‌گذاری شناسه و نحو auto-increment صحیح استفاده می‌کند.
کلید اصلی چگونه تعیین می‌شود؟
اگر ستونی با نام id یا uuid موجود و در هر ردیف غیر-null با مقادیر یکتا باشد، به‌عنوان PRIMARY KEY علامت‌گذاری می‌شود. یک کلید عدد صحیح همچنین AUTO_INCREMENT (MySQL)، ‏SERIAL (PostgreSQL)، یا AUTOINCREMENT (SQLite) می‌گیرد.

ابزارهای بیشتر