470 Shares 5889 views

"Insidie" Aggiornamento MySQL DML-Team

Ogni programmatore, che ha dovuto lavorare con i database, di fronte alle DML-operatori (tradotto dall'inglese – .. "Data Manipulation Language"), come ad esempio Select, Insert, Delete e Aggiornamento. MySQL-transport utilizza anche il suo arsenale di tutti i comandi precedenti.

Queste dichiarazioni sono logicamente parlando di sua nomina – la selezione dei record, inserire i nuovi valori, l'aggiornamento dei dati esistenti, completa, o in conformità con le condizioni specificate, la rimozione delle informazioni nel database. I materiali di formazione teorici sono descritti in dettaglio il principio di funzionamento di ogni comando e la loro sintassi, ma da nessuna parte trovano riferimenti alle difficoltà che potrebbero sorgere in pratica durante l'uso. Questo materiale sarà dedicata alla considerazione di alcuni di essi.

Brevemente DML-dichiarazioni (Insert)

Prima di procedere oltre, è necessario nuovamente richiamare ulteriori dettagli sullo scopo di ogni funzione. Avremo due operatori interessati in modo più dettagliato: Inserire e Aggiornamento, perché dipende da loro derivano le principali difficoltà nella elaborazione di grandi quantità di dati.

È necessario avviare con il comando Inserisci, e quindi spostare gradualmente l'aggiornamento. sistema di MySQL, come qualsiasi altro database moderna, utilizzare l'operazione Inserisci per aggiungere nuovi record alle tabelle esistenti database. La sintassi di questa operazione è molto semplice e lineare. Esso contiene un elenco di campi che verranno apportate ai valori, la destinazione – nome della tabella – e subito introdotto un elenco di dati. Ogni volta che si esegue il database di inserimento verrà aggiornato con nuovi valori.

Aggiornamento dichiarazione

Tuttavia, in pratica, molto spesso ci sono situazioni che per alcuni set di dati di uno o più valori di attributi per essere aggiornati. A titolo di esempio, una situazione in cui la società è stata la riforma con ulteriori ridenominazione dei dipartimenti principali. In questo caso è necessario apportare modifiche per ogni reparto. Se solo la modifica del nome, allora il problema può essere risolto molto rapidamente. Tuttavia, se si passa la codifica di ogni componente dell'intera produzione, che di solito serve come chiave primaria, che è, a sua volta, comporta modifiche alle informazioni e per ogni dipendente.

AggiornamentoDML-operatore può essere applicata per risolvere questo problema. Server per MySQL, che opera con un gran numero di voci, con l'aiuto di una dichiarazione di aggiornamento, eseguire la query richiesta e risolvere il problema. Ma a volte si verificano durante l'aggiornamento non è del tutto chiaro e difficile da spiegare la complessità. Questo è ciò che provoca la difficoltà di record aggiornati, saranno discussi ulteriormente.

Quel poco che è stato detto in teoria …

Update Team, come già detto, viene utilizzato per aggiornare i record esistenti nella tabella. Ma in pratica, i client che accedono i server di database non sono sempre noti, v'è un certo insieme di dati nelle tabelle o meno. Preliminare cercare la disponibilità dei dati nel database per il successivo aggiornamento dei risultati in termini di tempo e spreco di capacità del server.

Per evitare questo, in una speciale struttura di database MySQL – Inserire * Update, in cui l'inserimento o aggiornamento può essere eseguito in modo indipendente l'uno dall'altro. Questo è quando la tabella ha una voce per una particolare condizione, sarà aggiornato. Se le condizioni considerate, non saranno trovati i dati, MySQL-server è in grado di eseguire la richiesta arrivi di dati.

aggiornare i dati quando ci sono duplicati

Una componente importante di questo inserto richiesta al sistema di gestione di database MySQL – «On chiave duplicato Aggiornamento» prefisso. La sintassi completa della query è la seguente: «insert into TEST_TABLE (employer_id, nome) valori ( 1, 'Abramov') sulla chiave duplicata aggiornamento LAST_MODIFIED = NOW (); ".

Tale richiesta può essere utilizzata per registrare le azioni di, ad esempio, determinare il tempo impresa intersezione passaggio seguita contando intervallo di tempo e ritardo di rilevamento. Al fine di non rendere il tavolo alcuni record, sufficienti per ogni dipendente di tenere un registro con costante aggiornamento. È un disegno di controllo duplicato lo permette.

In realtà i problemi …

Considerando l'esempio precedente dell'azione personale di registrazione all'ingresso, come il problema è l'uso samouvelichivayuschihsya (_ incremento automatico) Campi, che sono tipicamente utilizzati per riempire i valori di chiave primaria (chiave primaria _). Se si utilizza il comando di aggiornamento di MySQL nel design, con Insert Auto _ incremento, il campo è in costante aumento.

Allo stesso modo, tutto avviene quando si utilizza una costruzione di sostituzione in caso di rilevamento di duplicati. "Auto-incremento" valore è aumentato anche nel caso in cui non è necessario. Per questo motivo, i problemi sorgono valori di trasmissione di trabocco o intervalli, che successivamente portano a malfunzionamenti dei sistemi di gestione di database.

Molto probabilmente il problema

Descrive il problema deve essere considerato web-sviluppatori, in quanto è più comune nei sistemi multi-utente (siti, portali, e così via. P.), Quando il sistema viene eseguito un gran numero di procedure di inserimento e aggiornare MySQL.

PHP appello alla base molto spesso eseguita. Pertanto, per raggiungere margini massimi, definiti come auto_increment, avviene rapidamente, e nell'analisi delle difficoltà incontrate per stabilire le ragioni appena non funzionerà.

Pertanto, gli sviluppatori sono incoraggiati ad essere attenti all'uso del disegno sulla chiave duplicata aggiornamento di comando mysql. selezionare – query durante l'accesso al server di database funzionerà senza errori, ma l'aggiunta di nuovi record al database è piena di situazioni spiacevoli in futuro portare a seri problemi. In alternativa, si consiglia per i campi di incremento automatico inizialmente verificare la presenza di loro dischi, e poi tenerli aggiornati.