AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Prism Datensätze aus einer Tabelle in eine andere einfügen?
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze aus einer Tabelle in eine andere einfügen?

Ein Thema von Alexander · begonnen am 5. Apr 2007 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 10:47
Datenbank: MySQL • Version: 3.28 • Zugriff über: ADO.NET
Hallo DB-Gurus ,
ich habe hier 2 Tabellen (MySQL), in der einen stehen Datensätze, die ich alle in eine andere Tabelle einfügen möchte (zumindest einige Spalten).
Die zweite Tabelle hat auch noch eine Spalte mehr, die dann auch noch mit einem Standardwert, der sich aber je nach Kopiervorgang
ändert, befüllt werden muss.

Der Zugriff erfolgt über ADO.NET mit dem MySQL Provider, aber das ist ja mehr oder weniger wurscht. Ist ja eine generelle SQL-Frage.

Ist das in einem Statement zu machen?
So in der Art vielleicht:
INSERT INTO GroupSettings (`OptID`, `Value`) VALUES (SELECT `OptID`, `Value` FROM Settings) Nur dass, dann noch die fehlende Spalte auch noch ergänzt werden müsste.

Oder muss ich die zu kopierenden Daten erst vom Server holen, in meinem Programm verarbeiten und dann wieder einfügen? Das wäre ja nicht das Problem, nur erstens wird das sicherlich langsamer sein und zweitens ist es mehr Tipparbeit .

Danke
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#2

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 11:21
Zitat von Alexander:
INSERT INTO GroupSettings (`OptID`, `Value`) VALUES (SELECT `OptID`, `Value` FROM Settings)
insert into groupsettings(optid,value) select optid,value from settings [where...] müsste selbst mit MySQL gehen.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 11:31
Okay, ohne Values .
Aber wie mache ich das mit der zusätzlichen Spalten in der neuen Tabelle? Groupsettings hat nämlich noch GroupID als Spalte.
Da soll z.B. eine 1 rein.
Kann man das auch noch mit reinkriegen? Sonst setze ich das mit nem zweiten Statement richtig.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#4

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 11:36
Einfach mit einer Konstante in der Select-Abfrage:

insert into groupsettings(optid, value, groupid) select optid, value, 1 from settings [where...]
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 13:12
Cool. Danke für den Tipp. Hätte ich auch selber drauf kommen können.
Alexander
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#6

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 14:26
Wollte es gerade einbauen, dabei ist noch eine Frage entstanden...

Man kann ja auch mehrere Datensätze auf einmal einfügen:
INSERT INTO GroupSettings (`OptID`, `Value`) VALUES ('', '', ''), ('', '', '') Ist das auch mit der von dir gezeigten Variante möglich?
Sprich so:
insert into groupsettings(optid,value) (select optid,value,2 from settings AND select optid,value,3 from settings ) Man müsste irgendwie die Ergebnisse beider Select Statements verbinden. Ein Join ist ja nicht, was dann?
Das ist doch bestimmt auch möglich, oder?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#7

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 14:31
mehrere result sets verbindet man mit UNION
insert into groupsettings(optid,value) (select optid,value,2 from settings union select optid,value,3 from settings )
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#8

Re: Datensätze aus einer Tabelle in eine andere einfügen?

  Alt 5. Apr 2007, 16:15
Natürlich Unions
Danke
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz