DBAtlas · Atlas für Datenbankbetrieb

Daten als INSERT-Skript erzeugen

Oracle

-- DBMS_METADATA for object DDL
SELECT DBMS_METADATA.GET_DDL('TABLE','CUSTOMER') FROM dual;

-- Generating row data as INSERTs is not built in;
-- use SQL Developer 'Export > Insert' or SQLcl 'SET SQLFORMAT INSERT':
-- SET SQLFORMAT INSERT
-- SELECT * FROM customer;

Oracle bietet keinen SQL-Befehl, der Daten direkt in ein fertiges INSERT-Skript umwandelt. Für DDL DBMS_METADATA.GET_DDL verwenden; für Zeilen-INSERTs SQLcl (SET SQLFORMAT INSERT) oder den Export-Assistenten von SQL Developer.

PostgreSQL

-- Data only, as INSERT statements
pg_dump --data-only --inserts --table=customer shop > insert.sql

-- With column names (more robust to schema differences)
pg_dump --data-only --column-inserts --table=customer shop > insert.sql

pg_dump --inserts schreibt jede Zeile als separates INSERT; --column-inserts fügt auch die Spaltennamen hinzu (robust gegenüber Schemaunterschieden). Der Standard (ohne Flag) erzeugt das COPY-Format, das viel schneller lädt.

MySQL

-- Data only (INSERTs), without the table definition
mysqldump --no-create-info shop customer > insert.sql

-- One INSERT per row (more readable)
mysqldump --no-create-info --skip-extended-insert shop customer > insert.sql

mysqldump erzeugt standardmäßig INSERT-Statements; --no-create-info überspringt CREATE TABLE und gibt nur Daten aus. --skip-extended-insert macht jede Zeile zu einem separaten INSERT (standardmäßig werden viele Zeilen in einem Statement zusammengefasst).

SQL Server

-- SSMS: right-click > Tasks > Generate Scripts >
--   Advanced > 'Types of data to script' = Data only (or Schema and data)

-- Command-line alternative (sqlpackage / mssql-scripter tool)
-- mssql-scripter -S server -d shop -t customer --data-only > insert.sql

SQL Server hat dafür keinen eingebauten T-SQL-Befehl. Am gängigsten ist es, im SSMS-Assistenten „Generate Scripts“ Data only zu wählen. Auf der Kommandozeile erzeugt das Microsoft-Tool mssql-scripter INSERTs mit --data-only.

MongoDB

# Produces a binary/BSON backup instead of INSERT SQL
mongodump --db=shop --collection=customer --out=./backup

# As JSON text (can be adapted to insertMany)
mongoexport --db=shop --collection=customer --jsonArray --out=customer.json

Ein SQL-INSERT-Konzept gibt es nicht. Für ein portables Backup mongodump verwenden (BSON, Restore mit mongorestore). Für ein in Code eingebettetes insertMany kann die Ausgabe von mongoexport --jsonArray verwendet werden.

Redis

# Portable serialization of a single key
DUMP customer:1
# The output is restored with RESTORE:
# RESTORE customer:1 0 "<dump-data>"

# RDB snapshot for all data
redis-cli --rdb dump.rdb

Es wird kein SQL-INSERT-Skript erzeugt. DUMP + RESTORE-Serialisierung pro Key und für alle Daten eine RDB-Datei (--rdb) verwenden. Wird eine Befehlsliste benötigt, mit SCAN iterieren und für jeden Typ die passenden SET/HSET-Befehle erzeugen.

Elasticsearch

# The INSERT equivalent is _bulk NDJSON; produce it with elasticdump
elasticdump --input=http://localhost:9200/customer --output=customer_bulk.json --type=data

# Manual: converting a _search result to _bulk NDJSON requires an external script

Es wird kein SQL-INSERT erzeugt; in Elasticsearch ist die Ladeeinheit _bulk-NDJSON. Um vorhandene Daten in wieder ladbarer Form zu extrahieren, elasticdump (type=data) verwenden; die Ausgabe von _search + PIT lässt sich mit einem externen Skript in NDJSON umwandeln.

In DBAtlas öffnen →