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

MySQL Daten in Tabelle A und AUTOINCREMENT-Feld als Schlüsselgenerator in Tabelle B

Frage Entwicklung Datenbanken

Mitglied: Codehunter

Codehunter (Level 2) - Jetzt verbinden

27.02.2015, aktualisiert 10:38 Uhr, 832 Aufrufe, 3 Kommentare

Hallo!

Ich möchte eine Tabelle (B) mit einer einzigen Spalte, welche ein AUTO_INCREMENT ist, als Schlüsselgenerator für eine andere (Daten-)Tabelle (A) verwenden. In der Tabelle A ist die Schlüsselspalte also keine AUTO_INCREMENT sondern lediglich UNIQUE. Durch die Methode möchte ich Schlüsselkollisionen vermeiden, weil sich unterschiedliche Datenobjekte über unterschiedliche Datentabellen verteilen, deren Schlüssel aber global eindeutig sein sollen. Das Grundprinzip funktioniert auch soweit. Nur finde ich es etwas lästig, die ganze Schlüssel-Erzeugung quasi "zu Fuß" zu machen wenn ich in den Datentabellen neue Datensätze anlegen will. Also erst neuen Datensatz in der AUTO_INCREMENT-Tabelle anlegen, dann LastInsertId von dort abfragen und in die Datentabelle einfügen.

Gibt es eine Möglichkeit, in einem Rutsch in Tabelle B einen Datensatz einzufügen und von dort die LastInsertId gleich in Tabelle A zu schreiben? Also in einem Query?

Grüße
Cody
Mitglied: Gersen
27.02.2015, aktualisiert um 12:34 Uhr
Hallo,

anstelle der "Schlüsselverwaltungstabelle" die globale Option "auto_increment_increment" in my.cnf (auf die Anzahl der betroffenen Tabellen) zu setzen, ist für Dich keine Option?

Wenn nicht, könnten hier oder hier ein paar Anregungen für Dich stehen.

Gruß,
Gersen
Bitte warten ..
Mitglied: Codehunter
27.02.2015 um 16:10 Uhr
Hallo!

Die my.cnf ist nicht wirklich eine Option. Bei den von mir gehosteten Anwendungen vielleicht, aber nicht bei denen, die Kundenseitig auf billigen Shared-Webspaces gehostet werden. Die kommen ja an ihre my.cnf nicht ran.

Ich denke ich habe jetzt aber eine praktikable Lösung per Before-Insert-Trigger gefunden. Den muss ich zwar für jede Tabelle welche den globalen Schlüssel verwendet, separat erstellen. Aber unterm Strich halte ich den Anwendungscode dadurch von Overhead frei.

Grüße
Cody
Bitte warten ..
Mitglied: Alchimedes
27.02.2015 um 17:55 Uhr
Hallo ,

Ich möchte eine Tabelle (B) mit einer einzigen Spalte, welche ein AUTO_INCREMENT ist, als Schlüsselgenerator für eine andere (Daten-)Tabelle (A) > verwenden In der Tabelle A ist die Schlüsselspalte also keine AUTO_INCREMENT sondern lediglich UNIQUE. Durch die Methode möchte ich
Schlüsselkollisionen vermeiden, weil sich unterschiedliche Datenobjekte über unterschiedliche Datentabellen verteilen, deren Schlüssel aber global
eindeutig sein sollen.

die Auto_Increment funktion gibt es ja genau aus diesem Grund.Wichtig ist hier natuerlich den Primarykey zu setzen.
Was fuer ne Datenbank nutzt Du ? myisam, InnoDB ?

Gruss
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MySQL - Feld aus anderer Tabelle hinzusummieren?
gelöst Frage von 1410640014Datenbanken5 Kommentare

Hallo, habe ein banales Problem und bin leider mit JOINS nicht gut bewandert. zwei simple Lagertabellen mit den Felder: ...

VB for Applications
Feld mit CSV-Daten aus MySQL-Datenbank einlesen
gelöst Frage von Andreas.HH1VB for Applications3 Kommentare

Hallo zusammen, ich bin neu hier und verfüge nur über eher schwache Grundkenntnisse. Ich hoffe daher, Ihr entschuldigt die ...

Datenbanken
Inkonsistente MySQL Tabellen wiederherstellen
Frage von AndroxinDatenbanken1 Kommentar

Moin, aus "Gründen" musste ich diverse MySQL Datenbanken von einer formatierten Festplatte wiederherstellen. In der Regel waren auch noch ...

Datenbanken
MySQL - Tabulator in Tabelle einfügen
gelöst Frage von mabue88Datenbanken1 Kommentar

Hallo, wie kann ich in MySQL Workbench in eine Spalte vom Typ VARCHAR() ein Tabulator ('\t') als Zeichen einfügen? ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 StundeInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 4 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 5 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 8 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement18 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...