![]() |
Datensätze von einer Tabelle in eine andere kopieren
Hallo
Habe folgendes Problem: Ich möchte per SQL Code mehrere Datensätze von einer Tabelle in eine andere Tabelle kopieren. Ich habe zwei DateTimePicker, mit den ich den Zeitraum festlegen kann. Außerdem benutze ich ADO- Querys Nun benötige ich dafür den SQL Code. Bitte deshalb um Hilfe. Dankeschön im voraus MFG Voltzi |
Re: Datensätze von einer Tabelle in eine andere kopieren
Du solltest mal etwas zum Aufbau der Tabellen sagen und uns gleich verraten, um was für eine DB es sich handelt.
...:cat:... |
Re: Datensätze von einer Tabelle in eine andere kopieren
Aufbau der Tabellen:
Die Tabellen haben jeweils eine Spalte ID als Auto_Increment, eine Spalte mit dem Datum, wann der Datensatz eingetragen wurde und noch andere Attribute. Die Datensätze aus der einen Tabelle sollen in die andere leere Tabelle kopiert werden. Es handelt sich um eine MySQL- Datenbank, verwaltet mit phpMyAdmin. |
Re: Datensätze von einer Tabelle in eine andere kopieren
Hallo Voltzi,
zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum. Grundsätzlich geht das mit INSERT:
SQL-Code:
INSERT INTO newTable
SELECT * FROM oldTable WHERE (timeFrom >= :timeFrom) AND (timeBis <= :timeBis) |
Re: Datensätze von einer Tabelle in eine andere kopieren
Gibts den Befehl
SQL-Code:
bei MySQL :gruebel: Ich glaube nicht, und ich denk somit auch nicht, daß sich das Kopieren so in einem Schritt bewerkstelligen läßt.
select into...
|
Re: Datensätze von einer Tabelle in eine andere kopieren
@ MrSpock
wie muss ich den SQL String jetzt richtig zusammensetzen?? einfach
Delphi-Quellcode:
funktioniert nicht wirklich.
Query.SQL.ADD('INSERT INTO newTable');
Query.SQL.ADD('SELECT * FROM oldTable'); |
Re: Datensätze von einer Tabelle in eine andere kopieren
:thumb: OK, der Code von MrSpock funktioniert... War mir so auch noch nicht bekannt bei MySQL
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Zitat:
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Hallo Voltzi,
natürlich musst du newTable und oldTable durch die echten Namen der Tabellen ersetzen. Übrigens auch die Feldnamen timeFrom und timeBis. :mrgreen: |
Re: Datensätze von einer Tabelle in eine andere kopieren
Zitat:
SQL-Code:
die ID Spalte mit berücksichtigt wird. Das klappt aber nicht weil du in der neuen Tabelle sicherlich auch einen Primärschlüssel definiert hast, und du so womöglich Probleme bekommst... Lasse also einfach die ID Spalte weg, etwa so:
select *...
SQL-Code:
In Delphi führst du den Befehl dann mit
insert into NewNamen (Name,Vorname)
select Name, Vorname from Namen
Delphi-Quellcode:
aus.
Query.ExecSQL ;
|
Re: Datensätze von einer Tabelle in eine andere kopieren
@Jelly
Vielen Dank. Es funktioniert. @All Ein Dankeschön für diese enorme Hilfsbereitschaft. MFG Voltzi |
Re: Datensätze von einer Tabelle in eine andere kopieren
hallo. ich habe ein anderes Problem, habe sehr vielle Felder in einer Tabelle. Habe ein Auto_inc wert wenn ich die Tabelle kopiere
Close; sql.Clear; sql.Add('create table '+NeueTabelle+' as Select * from '+Altetabelle+''); ExecSQL; dann sind die inc werte nicht gesetz so wie die auto_inc werte. Wie kann ich das lösen? Felder nazhal ist bei mir 30 |
Re: Datensätze von einer Tabelle in eine andere kopieren
Hi Karstadt. Mach doch einen neuen Thread auf. Die Frage von Voltzi ist beantwortet,
|
Re: Datensätze von einer Tabelle in eine andere kopieren
dann kommt so was wie " Benutzer Suche, suche benutzen!!" ;)
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Und? Mach doch!
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Zitat:
Auto-Inc Felder sind im 1. Augenblick sehr bequem; auf den 2. Blick machen sie viele Probleme. Aber das ist ein anderes Thema. |
Re: Datensätze von einer Tabelle in eine andere kopieren
Unter MSSQL gehts so:
1. Feld von autoinc in int ändern 2. insert into NewTable select * from OldTable 3. Feld von int wieder in autoinc zurückändern. Geht das nicht mit MySQL? |
Re: Datensätze von einer Tabelle in eine andere kopieren
jetzt kann ich das aber nicht mehr ändern. Projekt ist fast fertig.
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Da wird nix geändert. Kurz autoinc wegnehmen, tabelle kopieren, autoinc wieder rein und Alles ist so wie vorher, nur das eben die Daten in der neuen Tabelle identisch (also mit autoic) mit denen der alten Tabelle sind...
|
Re: Datensätze von einer Tabelle in eine andere kopieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz