JSON dosyalarını PostgreSQL için dönüştürün
JSON dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir PostgreSQL betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.
4 satır dönüştürüldü, 2 düzeltme, reddedilen yok
| Satır | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for PostgreSQL.
SET client_encoding = 'UTF8';
BEGIN;
CREATE TABLE pedidos_2024 (
pedido text NOT NULL,
cliente text NOT NULL,
fecha timestamptz NOT NULL,
total numeric(6,2) NOT NULL,
pagado boolean NOT NULL,
notas text
);
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
Düzeltmeler
- "pedido" içindeki baştaki sıfırlar korundu: 000481, 000481 olarak kalır ve metin olarak saklanır.
- "pagado" evet ve hayır sözcükleri içeriyor (sí); boolean olarak saklandı.
Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.
Diğer örnekler:
JSON dosyasından PostgreSQL için, sütun sütun
Yukarıdaki örnek pedidos_2024.json, IntoSQL'in PostgreSQL için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.
| Dosyada | İlk değer | Sütun | PostgreSQL türü | Betikte |
|---|---|---|---|---|
| pedido | 000481 | pedido | text | '000481' |
| cliente | Peña Muñoz | cliente | text | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | timestamptz | '2024-02-03 10:15:00+00:00' |
| total | 1234.5 | total | numeric(6,2) | 1234.5 |
| pagado | true | pagado | boolean | TRUE |
| notas | - | notas | text | NULL |
Betiği PostgreSQL veritabanına yükleyin
İndirilen dosya düz bir .sql dosyasıdır. PostgreSQL araçlarıyla çalıştırın.
Terminalden
psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sqlON_ERROR_STOP, psql'in ilk hatada durmasını sağlar. Betik tek bir işlemde çalışır, bu yüzden başarısız bir yükleme veritabanını olduğu gibi bırakır.
Bir veritabanı aracından
pgAdmin veya DBeaver'da betiği bir sorgu penceresinde açıp çalıştırın.
Betik olmadanPro
IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan PostgreSQL veritabanına yükler; betik yazmanız gerekmez.
intosql load pedidos_2024.json --into postgres://user@localhost/mydbJSON dosyaları ve PostgreSQL hakkında bilmeniz gerekenler
IntoSQL'in JSON dosyalarında okudukları
- Dosya bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON) olabilir.
- Her anahtar bir sütun olur. Bir değerin içindeki nesneler ve diziler JSON metni olarak korunur.
- Sayılar basamaklarını aynen korur, ISO 8601 tarihleri ise tarih veya zaman damgası olur.
PostgreSQL hakkında bilmeniz gerekenler
- Ondalık sayılar numeric(p,s) olarak basamaklarını aynen korur, saat farkı olan tarihler ise timestamptz olur.
- PostgreSQL metni NUL karakterini tutamaz, bu yüzden bu karakter onu içeren değerlerden çıkarılır.
- Betik tek bir işlemde çalışır, böylece başarısız bir yükleme yarım iş bırakmaz.
Her değer türü PostgreSQL içinde nasıl saklanır
| Değer | PostgreSQL |
|---|---|
| Evet ve hayır | boolean |
| Tam sayılar | integer |
| Büyük tam sayılar | bigint |
| Ondalık sayılar | numeric(p,s) |
| Kayan noktalı sayılar | double precision |
| Tarihler | date |
| Günün saatleri | time |
| Saatli tarihler | timestamp |
| Saatli ve saat farkı olan tarihler | timestamptz |
| Metin | text |
JSON dosyasından PostgreSQL için sorular
Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası
JSON dosyasını PostgreSQL için nasıl dönüştürürüm?
Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek PostgreSQL betiğini yazar. Betiği indirip psql ile çalıştırın.
JSON dosyası hangi yapıda olmalı?
Bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON). Her anahtar bir sütun olur.
Hangi PostgreSQL türlerini kullanır?
Evet/hayır değerleri boolean, tam sayılar integer, ondalıklar numeric(p,s), tarihler date, saatli tarihler timestamp ve metin text olur. Boyutlar her sütundaki en uzun değere göre belirlenir.
PostgreSQL için baştaki sıfırları korur mu?
Evet. 000481 gibi bir kod metin olarak kalır; PostgreSQL onu text olarak saklar ve betik onu '000481' olarak yazar.
Verileri betik olmadan PostgreSQL veritabanına yükleyebilir mi?
Evet, IntoSQL Pro ile. Masaüstü uygulaması ve komut satırı PostgreSQL veritabanına bağlanır, önce tabloyu oluşturur ve satırları doğrudan yükler.
JSON dosyası ne kadar büyük olabilir?
Satır başına bir nesne içeren NDJSON akış halinde okunur, bu yüzden tarayıcıda birkaç gigabaytlık dosyalar çalışır. Bir JSON belgesi bütün olarak okunur, bu yüzden sınırı tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta dosyayı alır.