Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Primärschlüssel ändern

Frage Entwicklung Datenbanken

Mitglied: marscru

marscru (Level 1) - Jetzt verbinden

10.12.2009 um 14:36 Uhr, 6045 Aufrufe, 8 Kommentare

hi @ all,

ich habe folgendes problem. ich möchte zwei tabellen (id, name, ....) zusammenlegen. nur haben sie den gleiche primärschlüssel auf der id spalte - somit kollidiert es ja. ich würde gerne in einer der tabellen die id spallte einfach in jeder zeile z.b. um 1000 erhöhen - sodass da die id für jeden namen nicht mehr 1,2,3,... sondern 1001,1002,1003 lautet.

gibt es da eine methode? oder etwas um das problem mit en identische PK zu umgehen?

lg marscru
Mitglied: maretz
10.12.2009 um 14:39 Uhr
naja - beim zusammenlegen lässt du das Feld ID aus einem der Felder einfach weg... Normal ist so eine Zusammenlegung ja eh mit einem Aufwand beim Anwendungsändern verbunden - d.h. das sollte machbar sein.

Dann gehst du einfach hin und erzeugst in einer Tabelle die notwendigen leeren Felder und lässt die Werte von Tabelle 2 in die Tabelle 1 automatisch kopieren.
Bitte warten ..
Mitglied: Biber
10.12.2009 um 14:49 Uhr
Moin marscru,

willkommen im Forum.
Ergänzend zu maretz' Kommentar die Nachfragen:

  • Verwaltest Du deine Daten mit einem M$-Access, einem mySQL-, einem Oracle-Datenbankblech oder ist es eine Tamagochi 3000 SL?
  • Oder ist es eine hypothetische Frage wie "Braucht die deutsche Bundesliga eine Winterpause"?
  • Ist die Spalte "ID" ein AutoWert/AutoIncrement/Sequence oder wird es als Wert beim insert übergeben?
  • Welche Childtabellen/Foreignkeys hängen von dieser ID ab?
  • Wenn doch die beiden jetzt zusammenzuführenden Tabellen so friedlich bebeneinander existieren konnten - ist es nicht eher eine Mandantenlösung, die da angebracht wäre?
  • WTF haben denn diese Datensätze keinen natural key... wieso landen so viele begnadete Amateure immer so schnell bei diesen Kunst-IDs ohne jeglichen Informationswert?

Grüße
Biber
Bitte warten ..
Mitglied: marscru
11.12.2009 um 09:17 Uhr
naja biber keine ahnung was das für beitrag sein sollte.....!!

ich möchte eigentlich ohne es 1000 mal manuell wiederholen zu müssen die ID - welche ja mein PK ist - und den betrag 'X' erhöhen! eben eine anweisung wie: erhöhe alle werte in der spalte ID um 10000. geht das irgendwie?
Bitte warten ..
Mitglied: db-wizard
11.12.2009 um 11:08 Uhr
Zitat von Biber:
* WTF haben denn diese Datensätze keinen natural key... wieso landen so viele begnadete Amateure immer so
schnell bei diesen Kunst-IDs ohne jeglichen Informationswert?

Grüße
Biber


Kleiner Kommentar zu dieser Aussage : Ich würde mich nach 20 Jahre DB Entwicklung nicht als "begnadeter Amatuer" bezeichnen, aber ich finde selten mal eine Natural Key, welcher wirklich als PK Kandidat geeignet ist. In der Regel wird ein "technischer" PK verwendet meiner Erfahrung nach


Gruss
Bitte warten ..
Mitglied: Biber
11.12.2009 um 11:25 Uhr
Moin db-wizard,

natürlich werden in der Praxis mehr "technische Schlüssel" verwendet als "natural keys".
Das hat doch aber vor allem die Gründe:

  • der eindeutig Identifizierende Schlüssel eines Datensatzes wäre zu lang/zu unhandlich/zu inperformant (Beispiel "Name+Vorname+GebDatum+PLZ+...")
  • der eindeutig Identifizierende Schlüssel eines Datensatzes würde sich u.U. ändern bei Infos, die hohe Änderungsfrequenz haben (Beispiel: PLZ, weil Kunde umzieht)
  • der PK wird zwangsweise in alle Child-Tabellen vererbt (bei jedem Kundenauftrag müssten theoretisch "Name+Vorname+GebDatum+PLZ+..." als FK-Felder auftauchen.->würde JOINS unnötig aufblähen; unzumutbarer Änderungsdienst bei PK-Änderungen..

Aber::
In all diesen Fällen ist es doch (aus meiner Sicht) schon relevant zu erfahren, ob/was alles an marscrus zu änderendem PK/Id dranhängt.
Ich/Er kann doch nicht einfach über eine Parent-Tabelle ein "Update parent set myID = myId +10000" abfeuern, wenn an dieser myID noch x Childtabellen und Constraints hängen.

Grüße
Biber
Bitte warten ..
Mitglied: db-wizard
11.12.2009 um 11:38 Uhr
Zitat von Biber:
Moin db-wizard,

natürlich werden in der Praxis mehr "technische Schlüssel" verwendet als "natural keys".
Das hat doch aber vor allem die Gründe:

  • der eindeutig Identifizierende Schlüssel eines Datensatzes wäre zu lang/zu unhandlich/zu inperformant (Beispiel
"Name+Vorname+GebDatum+PLZ+...")

Eben : PK sollten "unmutable" sein...Der Name einer Person ändert ...Jemand Heiratet, jemand wird geschieden etc....Dieses Beispiel wäre eni "schlechter" PK, abgesehen das deine Beispielkombination nicht notwendigerweise UNIQUE ist


* der eindeutig Identifizierende Schlüssel eines Datensatzes würde sich u.U. ändern bei Infos, die hohe
Änderungsfrequenz haben (Beispiel: PLZ, weil Kunde umzieht)
  • der PK wird zwangsweise in alle Child-Tabellen vererbt (bei jedem Kundenauftrag müssten theoretisch
"Name+Vorname+GebDatum+PLZ+..." als FK-Felder auftauchen.->würde JOINS unnötig aufbähen; unzumutbarer
Änderungsdienst bei PK-Änderungen..

Aber::
In all diesen Fällen ist es doch (aus meiner Sicht) schon relevant zu erfahren, ob/was alles an marscrus zu änderendem
PK/Id dranhängt.
Ich/Er kann doch nicht einfach über eine Parent-Tabelle ein "Update parent set myID = myId +10000" abfeuern, wenn
an dieser myID noch x Childtabellen und Constraints hängen.

ja, das ist das eigentliche Problem. Falls er keine FK Referenzen auf seinen PK hat, kann er ja die Spalte droppen und korrekt neu aufbauen


Grüße
Biber


Grüsse
Bitte warten ..
Mitglied: marscru
11.12.2009 um 12:06 Uhr
was ist daran falsch wenn ich die Pat_ID mit nummern beziffer(1,2,3,4,...) und die dazugehörigen B_ID (Berater) (101,102,103,...)? oder verstehen wir uns da falsch? ich soll nur 2 physisch getrennt datenbanken zusammenlegen - wo aber die PAT_ID und andere doppelt vorkommen. man merkt doch das ich auf dem gebiet voll neu bin
also drop ich sämtliche constraints, ändere meine werte und erstell die entsprechenden PK und FK neu?

geht bitte nicht zu hart mit mir ins gericht
Bitte warten ..
Mitglied: perseues
11.12.2009 um 12:13 Uhr
Hallo,

geht nicht ein UPDATE personen SET id=(id+1000); ?
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Primärschlüssel per VBA übergeben
gelöst Frage von thomas1972Datenbanken3 Kommentare

Hallo, ich versuche eine SQL Tabelle per VBa zu verbinden, soweit so gut, nur bekomme ich es nicht hin ...

Netzwerkmanagement
Netzlaufwerkpfade ändern
gelöst Frage von tribas222Netzwerkmanagement9 Kommentare

Hallo, bin hoffentlich im richtigen Unterforum ;) Ist-Stand: Mein selbsterstelltes Homelaufwerk wird folgendermaßen dargestellt: mein_name (\\domäne\pfadblah) Soll: Home (:H) ...

Windows Server
Kennwortkomplexität ändern
gelöst Frage von LinuZzzWindows Server12 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, an einem Windows 2012 Server, die Kennwortkomplexität zu verändern? Die Standardeinstellung besagt dass ...

Windows 7
Bildschirmauflösung ändern
Frage von ph0rl2Windows 72 Kommentare

Hallo, die WIN7 Clients werden über die Windows-Bereitstellungsdienste automatisiert installiert. Leider sind die Bildschirm-Settings nach der Neuinstallation immer total ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 13 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 14 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 22 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...