AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum ?
Thema durchsuchen
Ansicht
Themen-Optionen

UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum ?

Ein Thema von RWarnecke · begonnen am 14. Apr 2010 · letzter Beitrag vom 14. Apr 2010
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum ?

  Alt 14. Apr 2010, 18:50
Datenbank: Firebird Embedded • Version: 2.1.3 • Zugriff über: UniDAC
Hallo zusammen,

ich bin an einem Punkt angekommen, wo ich anscheinend nicht um Primary Keys, Foreign Key und Indices drum rumkomme. Ich habe den Befehl UPDATE OR INSERT gefunden, den ich gerne einsetzen würde. Nur verlangt dieser einen Primary Key. Dann habe ich im Internet auch noch die Möglichkeit gefunden den Befehl UPDATE OR INSERT ohne einen Primary Key in der Tabelle definiert zu haben einzusetzen. Dazu hänge ich einfach den Befehl MATCHING an das Ende von UPDATE OR INSERT und danach noch einen Feldnamen der Tabelle.

Jetzt stellt sich mir die Frage, ist es sinnvoller den Primary Key in der Tabelle zu setzen und wenn ja warum ?
Was passiert, wenn ich irgendein Feld beim MATCHING angeben ? Kann ich mir damit die Daten in der Tabelle zerpflücken ?
Welche Erfahrungen habt Ihr mit dem Befehl UPDATE OR INSERT gemacht und wie setzt Ihr ihn ein ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 18:54
PK <> MATCHING
Bei einem UPDATE OR INSERT gibt man zudem normalerweise keine ID an ( da diese idealerweise kein Teil der daten ist)
IM MATCHING gibst du die Feldkombination an, an welcher das DBMS erkennen kann, ob der Datensatz schon existiert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 18:58
Hallo Markus,

du schreibst, PK <> MATCHING. Dann verstehe ich nur nicht, warum ich auf eine Tabelle die keinen PK hat einen UPDATE OR INSERT BEfehl ohne MATCHING nicht absetzen kann. Setze ich dann in der Tabelle einen PK oder gebe das MATCHING an, dann funktioniert der UPDATE OR INSERT Befehl.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 19:02
Ohne das MATCHING wird der PK genommen, was bei syntetischen Schlüsseln keinen Sinn macht. Den diese werden ja vom DBMS automatisch vergeben.
Ein MATCHING bezieht sich aber auf die Daten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 19:08
Ok, dann werde ich wohl das Matching verwenden.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 19:16
Ist imho sinnvoller.
So kannst du z.B. angeben, das eine Person durch Name, Vorname, GebDat eindeutig identifiziert werden soll ( matching)
Wird nun ein neuer datensatz eingefügt, bei dem der diese Kombination mit einem vohandenen Satz übereinstimt, wird dieser upgedatet, d.h alle Felder in der Feldliste (ausser den 3) werden mit den neuen Werten ersetzt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: UPDATE OR INSERT, Primary Key setzen oder nicht ? Warum

  Alt 14. Apr 2010, 19:21
Danke Markus für Deine Hilfe.
Rolf Warnecke
App4Mission
  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 21:33 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