DBAtlas · Veritabanı operasyon atlası

Veriyi INSERT script olarak üret

Oracle

-- Nesne DDL'i için DBMS_METADATA
SELECT DBMS_METADATA.GET_DDL('TABLE','MUSTERI') FROM dual;

-- Satır verisini INSERT olarak üretmek yerleşik değildir;
-- SQL Developer 'Export > Insert' ya da SQLcl 'SET SQLFORMAT INSERT' kullanılır:
-- SET SQLFORMAT INSERT
-- SELECT * FROM musteri;

Oracle veriyi hazır INSERT betiğine doğrudan çeviren bir SQL komutu sunmaz. DDL için DBMS_METADATA.GET_DDL; satır INSERT'leri için SQLcl (SET SQLFORMAT INSERT) veya SQL Developer'ın Export sihirbazı kullanılır.

PostgreSQL

-- Yalnızca veriyi INSERT deyimleri olarak
pg_dump --data-only --inserts --table=musteri magaza > insert.sql

-- Kolon adlı ve daha hızlı yüklenen biçim
pg_dump --data-only --column-inserts --table=musteri magaza > insert.sql

pg_dump --inserts her satırı ayrı INSERT olarak yazar; --column-inserts kolon adlarını da ekler (şema farklarına dayanıklı). Varsayılan (bayrak yok) COPY biçimi üretir ve çok daha hızlı yüklenir.

MySQL

-- Yalnızca veri (INSERT'ler), tablo tanımı olmadan
mysqldump --no-create-info magaza musteri > insert.sql

-- Her satır ayrı INSERT olsun (daha okunur)
mysqldump --no-create-info --skip-extended-insert magaza musteri > insert.sql

mysqldump varsayılan olarak INSERT deyimleri üretir; --no-create-info CREATE TABLE'ı atlar, yalnızca veri verir. --skip-extended-insert her satırı ayrı INSERT yapar (varsayılan çok satırı tek deyimde birleştirir).

SQL Server

-- SSMS: sağ tık > Tasks > Generate Scripts >
--   Advanced > 'Types of data to script' = Data only (veya Schema and data)

-- Komut satırı alternatifi (sqlpackage / mssql-scripter aracı)
-- mssql-scripter -S sunucu -d magaza -t musteri --data-only > insert.sql

SQL Server'da yerleşik T-SQL komutu yoktur. En yaygın yol SSMS 'Generate Scripts' sihirbazında Data only seçmektir. Komut satırında Microsoft'un mssql-scripter aracı --data-only ile INSERT üretir.

MongoDB

# INSERT SQL yerine ikili/BSON yedek üretilir
mongodump --db=magaza --collection=musteri --out=./yedek

# JSON metni olarak (insertMany'e uyarlanabilir)
mongoexport --db=magaza --collection=musteri --jsonArray --out=musteri.json

SQL INSERT kavramı yoktur. Taşınabilir yedek için mongodump (BSON, mongorestore ile geri yüklenir). Kod içine gömülecek insertMany için mongoexport --jsonArray çıktısı kullanılabilir.

Redis

# Tek anahtarın taşınabilir serileştirmesi
DUMP musteri:1
# Çıktı RESTORE ile geri yüklenir:
# RESTORE musteri:1 0 "<dump-verisi>"

# Tüm veri için RDB snapshot'ı
redis-cli --rdb dump.rdb

SQL INSERT betiği üretilmez. Anahtar bazında DUMP + RESTORE serileştirmesi, tüm veri için RDB (--rdb) dosyası kullanılır. Komut listesi üretmek istenirse SCAN ile gezip her tip için uygun SET/HSET komutları oluşturulur.

Elasticsearch

# INSERT karşılığı _bulk NDJSON'dur; elasticdump ile üretilir
elasticdump --input=http://localhost:9200/musteri --output=musteri_bulk.json --type=data

# Manuel: _search sonucunu _bulk NDJSON'a dönüştürmek için harici script gerekir

SQL INSERT üretilmez; Elasticsearch'te yükleme birimi _bulk NDJSON'dur. Var olan veriyi tekrar yüklenebilir biçimde almak için elasticdump (type=data) kullanılır; _search + PIT çıktısı harici bir betikle NDJSON'a çevrilebilir.

DBAtlas'ta aç →