Um Werte aus anderen Tabellen in eine Tabelle einzufügen, können Sie eine SELECT-Klausel in der INSERT-Anweisung benutzen. Die SELECT-Klausel kann Werte in einige oder alle Spalten einer Zeile einfügen.
Werte nur für einige Spalten einzufügen kann sich dann als sinnvoll erweisen, wenn Sie einige Werte aus einer bestehenden Tabelle übernehmen wollen. Danach können Sie die Anweisung UPDATE verwenden, um die Werte für die anderen Spalten einzufügen.
Bevor Sie Werte für einige, nicht aber alle Spalten einer Tabelle einfügen, müssen Sie sicherstellen, dass für die Spalten, in die kein Wert eingefügt wird, ein Standardwert besteht oder NULL definiert wurde. Andernfalls wird ein Fehler gemeldet.
Wenn Sie Zeilen aus einer Tabelle in eine andere einfügen, müssen die beiden Tabellen kompatible Strukturen haben—das bedeutet, dass die passenden Spalten dieselben Datentypen aufweisen oder mit Datentypen definiert sein müssen, zwischen denen SQL Anywhere automatisch konvertieren kann.
Wenn die Spalten in beiden Tabellen in derselben Reihenfolge sind, brauchen Sie in keiner Tabellen Spaltennamen anzugeben. Beispiel: Angenommen, Sie haben eine Tabelle namens "NewProducts", die dasselbe Schema wie die Products-Tabelle hat und einige Zeilen mit Produktinformationen enthält, die Sie der Products-Tabelle hinzufügen wollen. Sie könnten die folgende Anweisung ausführen:
INSERT Products SELECT * FROM NewProducts; |
Sie können die Anweisung SELECT verwenden, um genauso wie mit der Klausel VALUES Daten in eine Teilmenge der Spalten einer Zeile einzufügen. Geben Sie einfach in der INSERT-Anweisung die Spalten an, in die Sie Daten einfügen wollen.
Sie können Daten in eine Tabelle unter Benutzung von anderen Daten in derselben Tabelle einfügen. Der Vorgang umfasst im Wesentlichen das Kopieren eines Teils oder der Gesamtheit einer Zeile.
Beispiel: Sie können basierend auf vorhandenen Produkten neue Produkte in die Tabelle "Products" einfügen. Die folgende Anweisung fügt den neuen Artikel "Extra Large Tee Shirts" (aus der Modellreihe "Tank Top", "V-neck" und "Crew Neck") in die Tabelle "Products" ein. Die Identifizierungsnummer ist um 30 größer als die bestehende T-Shirt-Größe:
INSERT INTO Products SELECT ID + 30, Name, Description, 'Extra large', Color, 50, UnitPrice, NULL FROM Products WHERE Name = 'Tee Shirt'; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |