întrebări și răspunsuri populare MySQL

De unde știi următoarea valoare AUTO_INCREMENT dintr-un tabel în MySQL?

Vă rugăm să rețineți, Internetul este adesea găsit metoda defect de determinare a înregistrării numărul (ID), care va fi adăugat:

Acest lucru este greșit! pentru că în cazul în care nu este ultima înregistrare a fost șters, valoarea id adăugată de înregistrare meci MAX + 1!

În plus, atunci când un număr mare de zaprosoov simultană a bazei de date id-ul de la clienți diferiți pot deveni mai mult decât a primit doar „TBL“ funcția SHOW TABEL STATUS LIKE deoarece Aș putea aluneca INSERT. De exemplu, id: 1,2,3,4 eliminat 3. Apoi a adăugat 5 în loc de 3.

Cum se setează o valoare inițială pentru un câmp cu creștere automată în MySQL?

Pentru a reseta avtoinkremetnogo câmp la valoarea inițială a tabelelor de date existente rula:

După aceea, atunci când este adăugată, următoarea intrare este numele unui mare număr de id + 1

Dacă doriți să creați tabel:

Cum de a utiliza gratuit id înregistrări?

După îndepărtarea înregistrărilor într-un tabel de baze de date, auto-incrementează id lansat și nu va fi folosit. Aceasta se face în mod specific pentru operațiunile unice. De exemplu, atunci când se decide dacă sincronizarea în baze de date distribuite.

Dacă utilizați ID-ul pentru numerotarea kogtoruyu spectacol polzovetlyu, „găurile“ din numerotarea - nu o destul de vedere.

Există două opțiuni:

După fiecare îndepărtarea de dumping AUTO_INCREMENT 1 cu comanda:

După adăugarea recordul pentru ID-ul ei în locul mysql_insert_id funcții standard (), utilizând următoarele:

Ea este în căutarea pentru o „gaură“ în numerotare (număr gratuit id-ul), și încearcă să ia primul liber, dacă are succes, ultimul record adăugat va avea id „găuri“ și sa întors în cameră. În cazul utilizării frecvente a datelor stocate în memoria cache în variabila de memorie.

Concluzia din bazele de date legate

Ieșire toate domeniile de KATEG și numele câmpului de GR. Atenție cu aceleași nume de câmp. Acestea sunt luate din a doua bază.

Verificarea stării de înregistrare

În cazul în care există cel puțin o înregistrare îndeplinește condiția:

Ștergerea în bazele de date asociate

Uneori doriți să scrie acest tip de cerere:

Dar nu va funcționa, care este echivalent cu codul de lucru:

Numărul de înregistrări

Contele numărul de înregistrări care satisfac condiția

Noțiuni-cheie intrări tocmai adăugate

Pentru a obține numai înregistrările adăugată o funcție cheie este utilizată

Renumeroteaza id domeniu să fie unic AUTO_INCREMENT în MySQL

În 99 la sută din cazuri nu este necesar să se facă. O cheie unică este creat pentru a rămâne o „gaură“ în numerotarea la ștergerea înregistrărilor. Dar, uneori este necesar. De exemplu, am creat un site web și dactilografiat de referință la client pe mașina locală, desigur, au existat multe revizuiri. La fel ca atunci când „vykladyvanii live“ pentru a face sa arate frumos. Asta pentru ocazie și efectuați următoarele skriptik:

Cum se obține o listă de intrări în șirul de identitate pentru starea de MySql

Pentru a selecta lista de intrări într-un șir de coduri de identificare vor utiliza funcția MySql GROUP_CONCAT

Găsiți în tabele legate de înregistrări pierdute
(Intrările nu au o valoare de referință)

Dacă doriți să găsiți și să ștergeți înregistrări orfani:

ȘTERGE corespunzătoare propunere va fi:

Cerere de stabilire urmași fără părinți arată astfel:

Propunerea corespunzătoare DELETE șterge-le:

Câte mesaje au fost trimise în timpul fiecare oră a zilei?

Conversia la DATETIME TIMESTAMP și înapoi

MyISAM sau InnoDB?

MyISAM InnoDB mai rapid - este îndoielnic. Acestea sunt concepute pentru diferite tipuri de aplicații:
  • MyISAM - comprimate, destinate utilizării cu o marjă foarte mare în partea de citire (de exemplu, ele vor fi comportat bine la 1000 citiri de la dosar 1). Trebuie să se înțeleagă că ele nu acceptă înregistrarea simultană. Ie în momentul introducerii înregistrărilor într-un tabel toate celelalte cereri sunt suspendate și de așteptare!
  • InnoDB - sprijină înregistrarea simultană pentru o foarte mică lecturi de degradare de performanță în comparație cu MyISAM. De fapt, în prezența unor cereri de înregistrare citire paralelă din aceeași placă InnoDB posibile (spre deosebire de MyISAM) și, în consecință, performanța acestor tabele va fi peste medie.

Mysql cum să ignore erori la încărcarea unui depozit?

Utilizați tasta „-f“ - vă permite să continue chiar și în cazul în care apare o eroare în acest proces. De exemplu:

Lungă interogare MySQL și ce să-l înlocuiască?

Această solicitare se face din tabelul 100tys.zapisey în cazul în care mai mult de 10 secunde pentru a-l rupe în două, fiecare executat în mai puțin de o secundă:

MySQL de caractere set de baze de date și să modifice toate câmpurile

O cerere pentru conversia bazei:

Dacă aveți o versiune de server MySQL 5+ esti norocos! care va fi în măsură să îndeplinească o astfel de cerere aici:

Înlocuiți! nume_bd pe numele dvs. baza de date.

După interogare SQL primi un răspuns în stil:

Copiați-l, l lipiți în formă de interogare SQL și de a executa, rezultatul - o codificare complet schimbat din toate tabelele de pe utf8 - se bucure de timpul salvat!

Pe lângă faptul că baza ar trebui să fie la codificarea corectă, conexiunea, de asemenea, trebuie să instalați codificarea corectă:

Cele mai populare: