AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 2 Datensätze nach einer 1:1-Kopie untrennbar
Thema durchsuchen
Ansicht
Themen-Optionen

2 Datensätze nach einer 1:1-Kopie untrennbar

Ein Thema von Moony · begonnen am 7. Mär 2006 · letzter Beitrag vom 7. Mär 2006
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 18:18
Datenbank: MySQL • Zugriff über: MySQL ODBC Treiber V.3.51 / ADOConnection
Hallo zusammen,

habe ein kleines Problem mit dem Bearbeiten eines Datensatzes.
Ich möchte einen Datensatz 1:1 kopieren. Da dieser knapp 40 Datenfelder besitzt habe ich mir das Leben mit dieser SQL-Anweisung einfach gemacht:
INSERT INTO Tabelle1 (SELECT * FROM Tabelle1 WHERE Feld20 = '12345') Das hat ja soweit funktioniert. Nun habe ich also 2 identische Datensätze in der Datenbank. Wenn ich jetzt aber ein paar Werte von einem der beiden Datensätze ändern möchte, dann werden die Änderungen auf beiden Datensätzen ausgeführt. Demnach sind die beiden untrennbar. Was mache ich da?

Es ist ja wohl schwachsinn, wenn ich jeden einzelnen Inhalt des bestehenden Datensatzes über eine normale INSERT INTO - Anweisung tätige bei so vielen Datenfeldern.

Ich hoffe mir kann da jemand helfen. Vielen Dank im Vorraus.

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 18:22
Sorge dafür das die ID der beiden Datensätze verschieden ist. GGf erweitere die Tabelle um ein Schlüsselfeld für diesen Zweck.

BTW. Wozu das Verdoppeln des(r) Datensa(ä)tz(e)?
Markus Kinzler
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 18:25
Hmmm,

ich denke aber du wirst da so nicht drumherumkommen.

Bei ner 1:1 Kopie hilft manchmal ne DB-Ansicht (Table-Ansicht, nicht sql) wo du jeden DS editieren kannst, aber nur durch SQL wirste damit nicht weiterkommen.

Du solltest dir einen exakten Schlüssel definieren, welchen du natürlich beim Insert-Into passend füllen musst. Aber ich bin nicht grad der Kenner von MySQL vielleicht hat ja hier einer ne Idee.

Für deine DB selber ist das natürlich totaler mist, weil gerade die unterschiede in den Datensätzen eine DB ausmachen sollten, und doppelte Daten vermieden werden sollten
Ansgar
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#4

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 19:03
Ich will diesen Datensatz kopieren, weil ich den Datensatz mit nur wenigen Änderungen genau so benötige und bei knapp 40 Datenfeldern ist das eine gute Idee. Aber ich glaube das geht so nicht, da ich keinen eindeutigen Schlüssel in dieser Tabelle besitze. Deshalb hat sich das wohl erledigt und ich muß alle Inhalte Feld für Feld eintragen.
Trotzdem Danke für den Versuch.

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 19:07
Zitat:
Deshalb hat sich das wohl erledigt und ich muß alle Inhalte Feld für Feld eintragen.
Nein warum den. Einfach Tabelle um ein weiteres Feld mit autoincrement erweitern und dann mit

INSERT INTO Tabelle1( <Feldliste> (SELECT <Feldliste> FROM Tabelle1 WHERE Feld20 = '12345')
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 19:23
wenn du die Tabelle nicht ändern willst oder kannst funktioniert eventuell die angabe von "limit 1"
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 19:37
Wenn die Datensätze in einer Tabelle mit 40 Feldern sich in so vielen Feldern nicht unterscheiden, dass einem eine Kopie des Datensatzes als gute Ausgangslage für einen neuen Datensatz erscheint, dann ist eventuell das Datenmodell nicht korrekt normalisiert worden.

Nachdenkliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#8

Re: 2 Datensätze nach einer 1:1-Kopie untrennbar

  Alt 7. Mär 2006, 20:07
Moin, Spätmoin,

also das Problem scheint wohl eher in der SQL generierung zu liegen und zu wenig automatisiert zu sein.
Wenn das nicht zu lösen ist, da sowas doch einiges an Aufwand ist, dann teile Deine Tabell in eine Master und eine Detailtabelle. Das ein Mster hier nur einne Detaildatensatz hat macht dabei eigentlich nichts. Damit brauxhst Du Dich dann auch bei einzelnen Felödänderungen nur um eine Tabelle kümmern. Sonst sei auf Marabus´s Hinweis verwiesen.

Grüße // Martin
Martin Schaefer
  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 22:00 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