Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Ferndatenzugriff und Arbeit mit Massendaten » Daten importieren und exportieren » Daten importieren

 

Daten mit der INSERT-Anweisung importieren

Verwenden Sie die INSERT-Anweisung, um der Datenbank Zeilen hinzuzufügen. Da die Importdaten für Ihre Zieltabelle in die INSERT-Anweisung aufgenommen werden, wird dies als interaktive Eingabe angesehen. Sie können die INSERT-Anweisung auch mit Ferndatenzugriff verwenden, um Daten aus einer anderen Datenbank und nicht aus einer Datei zu importieren.

Verwenden Sie die INSERT-Anweisung unter folgenden Umständen für den Datenimport:

  • Sie wollen geringe Datenmengen in eine einzige Tabelle importieren.

  • Sie sind im Hinblick auf die Dateiformate flexibel.

  • Sie wollen entfernte Daten aus einer externen Datenbank und nicht aus einer Datei importieren.

Die INSERT-Anweisung bietet eine ON EXISTING-Klausel, um eine Aktion anzugeben, die ausgeführt wird, wenn eine einzufügende Zeile in der Zieltabelle gefunden wird. Wenn es jedoch voraussichtlich viele Zeilen gibt, die der ON EXISTING-Bedingung entsprechen, kann es sinnvoll sein, stattdessen die MERGE-Anweisung zu verwenden. Die MERGE-Anweisung bietet mehr Kontrolle über die Aktionen, die Sie bei übereinstimmenden Zeilen durchführen können. Sie stellt auch eine ausgefeiltere Syntax zur Verfügung um festzulegen, was eine Übereinstimmung ausmacht. Weitere Hinweise finden Sie unter MERGE-Anweisung.

Überlegungen zu materialisierten Ansichten

Bei Sofortansichten wird ein Fehler zurückgegeben, wenn Sie versuchen, einen Massenimport von Daten in eine Basistabelle durchzuführen. Sie müssen die Daten in der Ansicht erst kürzen und können erst dann den Massenimport vornehmen.

Bei manuellen Ansichten können Sie einen Massenimport von Daten in eine Basistabelle durchführen. Allerdings werden die Daten in der Ansicht veraltet, bis die nächste Aktualisierung erfolgt.

Denken Sie daher daran, eine Kürzung in abhängigen materialisierten Ansichten vorzunehmen, bevor Sie einen Massenimport wie z.B. eine INSERT-Anweisung in einer Tabelle versuchen. Nachdem Sie die Daten geladen haben, aktualisieren Sie die Ansicht. Weitere Hinweise finden Sie unter TRUNCATE-Anweisung und REFRESH MATERIALIZED VIEW-Anweisung.

Überlegungen zu Textindizes

Bei Sofort-Textindizes kann das Aktualisieren eines Textindexes nach dem Massenimport wie etwa einer INSERT-Anweisung in der Basistabelle eine bestimmte Zeit in Anspruch nehmen, auch wenn die Aktualisierung automatisch erfolgt. Bei manuellen Indizes kann sogar die Aktualisierung eine Zeitlang dauern.

Denken Sie daran, abhängige Textindizes zu löschen, bevor Sie einen Massenimport wie eine INSERT-Anweisung für eine Tabelle vornehmen. Nachdem Sie die Daten geladen haben, erstellen Sie den Textindex neu. Weitere Hinweise finden Sie unter DROP TEXT INDEX-Anweisung und CREATE TEXT INDEX-Anweisung.

Auswirkungen auf die Datenbank

Wenn Sie die INSERT-Anweisung verwenden, werden Änderungen im Transaktionslog aufgezeichnet. Das bedeutet, dass Sie im Fall eines Datenträgerausfalls, der die Datenbankdatei betrifft, anhand des Transaktionslogs Informationen über die von Ihnen durchgeführten Änderungen beziehen können.

♦  So importieren Sie Daten (INSERT-Anweisung)

Im folgenden Beispiel werden Daten der Departments-Tabelle in der SQL Anywhere-Beispieldatenbank hinzugefügt.

  1. Stellen Sie sicher, dass die Zieltabelle vorhanden ist.

  2. Führen Sie eine INSERT-Anweisung aus. Zum Beispiel:

    Im folgenden Beispiel wird eine neue Zeile in die Departments-Tabelle in der SQL Anywhere-Beispieldatenbank eingefügt:

    INSERT
    INTO Departments ( DepartmentID, DepartmentName, DepartmentHeadID )
    VALUES ( 700, 'Training', 501)
    SELECT * FROM Departments;

    Beim Einfügen werden der bestehenden Tabelle die neuen Daten hinzugefügt.

Siehe auch