658 Shares 8649 views

"Pitfalls" DML-Team-Update-MySQL

Jeder Programmierer, der mit Datenbanken arbeiten mußte, mit dem DML-Betreiber konfrontiert (übersetzt aus dem Englischen – .. „Data Manipulation Language“), wie zB Select, Einfügen, Löschen und Update. MySQL-Transport nutzt auch sein Arsenal von allen oben genannten Befehlen.

Diese Aussagen sprechen logisch über seine Ernennung – Auswählen von Datensatz, neue Werte einfügen, vorhandene Daten zu aktualisieren, zu ergänzen, oder in Übereinstimmung mit den festgelegten Bedingungen, die Entfernung der Informationen in der Datenbank. Die theoretischen Schulungsunterlagen sind im Detail des Prinzip des Betriebes jeden Befehls und ihre Syntax beschrieben, aber nirgendwo Hinweise auf die Schwierigkeiten gefunden, die in der Praxis bei der Verwendung entstehen könnten. Dieses Material wird auf die Betrachtung von einigen von ihnen gewidmet sein.

Kurz über DML-Anweisungen (Insert)

Bevor Sie fortfahren, ist es wieder notwendig, um mehr Details über den Zweck der einzelnen Funktionen aufzurufen. Wir haben zwei Operatoren interessiert näher: Insert und Update, weil es von ihnen abhängt bei der Verarbeitung großer Datenmengen , die Hauptschwierigkeiten abzuleiten.

Sie müssen mit dem Befehl Einfügen beginnen und dann nach und nach in das Update zu bewegen. MySQL – System, wie jede andere moderne Datenbank, verwenden Sie die Insert Operation um neue Datensätze zu vorhandenen Tabellen hinzufügen Datenbank. Die Syntax dieser Operation ist sehr einfach und unkompliziert. Es enthält eine Liste von Feldern, die mit den Werten gemacht werden, die Ziel – Name der Tabelle – und sofort eine Liste von Daten eingeführt. Jedes Mal , wenn Sie die Insert – Datenbank durchführen wird mit neuen Werten aktualisiert werden.

Update-Anweisung

Doch in der Praxis sehr oft gibt es Situationen, die für einigen Satz von Daten einer oder mehr Attributwerten aktualisiert werden. Als Beispiel einer Situation, in der Gesellschaft Reform mit weiterer Umbenennung der Hauptabteilungen war. In diesem Fall ist es notwendig, Änderungen für die einzelnen Abteilungen zu machen. Wenn Sie nur den Namen zu ändern, dann kann das Problem sehr schnell lösen. Wenn jedoch die Kodierung jeder Komponente der gesamten Produktion ändern, die in der Regel als Primärschlüssel dient, das, wiederum, bringt Änderungen an der Information und für jeden Mitarbeiter.

UpdateDML-Operator kann angewandt werden , um dieses Problem zu lösen. MySQL- Server, mit einer großen Anzahl von Einträgen, mit Hilfe einer Update – Anweisung arbeitet, führen die erforderliche Abfrage und das Problem zu beheben. Aber manchmal tritt während der Aktualisierung nicht ganz klar und schwierig ist, die Komplexität zu erklären. Das ist, was die Schwierigkeit der Datensätze verursacht aktualisiert, wird weiter diskutiert.

Was hat sich wenig in der Theorie gesagt …

Update-Team, wie oben erwähnt, wird verwendet, bestehende Datensätze in der Tabelle zu aktualisieren. Aber in der Praxis, Kunden die Datenbankserver zugreifen, werden nicht immer bekannt ist, gibt es eine bestimmte Menge von Daten in den Tabellen oder nicht. Vorläufige überprüft die Verfügbarkeit von Daten in der Datenbank für die spätere Aktualisierung der Ergebnisse in zeitraubend und Verschwendung von Serverfunktionen.

Um dies zu vermeiden, in einer speziellen Datenbank MySQL Struktur – Insert * Update, in dem der Einsatz oder aktualisieren kann unabhängig voneinander durchgeführt werden. Das heißt, wenn die Tabelle einen Eintrag für einen bestimmten Zustand hat, wird aktualisiert. Wenn die in Betracht gezogenen Bedingungen, werden die Daten nicht gefunden werden, MySQL-Server ist in der Lage Daten-Uploads Anfrage auszuführen.

Aktualisieren von Daten, wenn es Duplikate

Ein wichtiger Bestandteil dieses Insert Anforderung an die MySQL – Datenbank – Management – System – «Ein Doppelte Key Update» Präfix. Die vollständige Syntax der Abfrage lautet wie folgt: «Einfügen in test_table (employer_id, name) values ( 1, 'Abramov') auf doppelte Schlüssel Update last_modified = NOW (); “.

kann verwendet werden, um die Aktionen von beispiels aufzuzeichnen, bestimmen die Schnittdurchlaufzeit, gefolgt von Unternehmen Zählzeitintervalls und Erfassungsverzögerung eine solche Anforderung. Um eine ständige Aktualisierung nicht zu machen die Tabelle einige Datensätze, genug für jeden Mitarbeiter Aufzeichnungen zu halten. Es ist eine Dublettenprüfung Design erlaubt es.

Eigentlich Probleme …

Betrachtet man das obige Beispiel der Registrierungs Personal Aktion am Eingang, wie das Problem die Verwendung samouvelichivayuschihsya (auto _ Inkrement) Felder ist, die typischerweise verwendet werden , um die Primärschlüsselwerte (primärer _ key) zu füllen. Wenn Sie mit MySQL Update – Befehl im Design mit Insert Auto _ Schritt wird das Feld ständig zu.

Ebenso geschieht alles, wenn eine Ersatzkonstruktion im Fall von Duplikaterkennung verwenden. „Auto-increment“ Wert wird erhöht, selbst in dem Fall, wenn es nicht benötigt wird. Aus diesem Grund ergeben sich Probleme Überlauf Pass Werte oder Bereiche, die anschließend zu einer Fehlfunktion des Datenbankmanagementsysteme führen.

Wahrscheinlich ist das Problem

Beschreibt das Problem betrachtet werden, müssen Web-Entwickler werden, wie es ist am häufigsten in Mehrbenutzersystemen (Websites, Portale, und so weiter. P.), Wenn das System eine große Anzahl von Prozeduren ausgeführt wird Insert und Aktualisieren von MySQL.

PHP Appell an die Basis sehr häufig durchgeführt. Deshalb, um maximale Margen zu erzielen, als auto_increment definiert, schnell auf, und bei der Analyse der Schwierigkeiten , die Gründe zu etablieren wollen einfach nicht funktionieren.

Daher sind die Entwickler aufgefordert, die Verwendung des Designs auf doppelten Schlüssel in Befehl mysql Update aufmerksam zu sein. wählen – Abfragen beim Zugriff auf die Datenbank – Server ohne Fehler funktionieren wird, aber das Hinzufügen neuer Datensätze in die Datenbank ist mit unangenehmen Situationen in der Zukunft führen zu ernsthaften Problemen behaftet. Alternativ ist es empfehlenswert, für Auto-Increment-Felder zunächst für ihre Aufzeichnungen überprüfen und sie dann aktualisiert halten.