Как пользоваться
- Вставьте массив объектов JSON. Один объект тоже подойдёт — получится одна строка.
- Введите имя таблицы (можно schema.table) и выберите MySQL, PostgreSQL или SQLite.
- Отметьте, нужны ли CREATE TABLE, INSERT или оба, и сколько строк класть в один INSERT.
- Скопируйте SQL и выполните его в клиенте базы данных.
Как это работает
Столбцы — все ключи, найденные в объектах, в порядке первого появления. Тип столбца выбирается по его значениям, а если ключа в объекте нет, в этой строке будет NULL. Строки записываются многострочными INSERT, которые понимают все три СУБД; большой массив делится по настройке «Строк в одном INSERT».
Числа пишутся как есть, логические значения — TRUE/FALSE (1/0 в SQLite), а в столбце со смешанными значениями каждое значение пишется текстом в кавычках, чтобы INSERT подходил к типу TEXT.
Пример
[{"id":1,"name":"Ann","tags":["a"]},{"id":2,"name":"Bob"}] с таблицей users для PostgreSQL даёт:
CREATE TABLE "users" (
"id" BIGINT NOT NULL,
"name" TEXT NOT NULL,
"tags" JSONB
);
INSERT INTO "users" ("id", "name", "tags") VALUES
(1, 'Ann', '["a"]'),
(2, 'Bob', NULL);
В объекте Bob нет tags, поэтому столбец допускает NULL, а в его строке стоит NULL.
Советы
- PRIMARY KEY и индексы добавьте сами: генератор не знает, какой столбец ключевой.
- Даты в JSON — это строки, поэтому они становятся TEXT; поменяйте тип на DATE или TIMESTAMP, если значения — даты ISO.
- Целые больше 9 007 199 254 740 991 теряют точность при чтении JSON в JavaScript; храните большие идентификаторы строками.
- Для данных в CSV есть инструмент «CSV в SQL INSERT».