Популярни MySQL въпроси и отговори

Откъде знаеш, че следващата auto_increment стойност от таблица в MySQL?

Моля, имайте предвид, интернет често се окажат виновни метод за определяне на запис номер (ID), който ще бъде добавен:

Това е грешно! защото ако се не на последно Записът е изтрит, добавената стойност на номер рекорд мач MAX + 1!

В допълнение, когато голям брой едновременно zaprosoov идентификатор на базата данни от различни клиенти, може да стане нещо повече от получаване на "TBL" функция SHOW TABLE СТАТУТ харесвам, защото Можех да се промъкнат INSERT. Например ID: 1,2,3,4 изтрити 3. След прибавят 5 вместо 3.

Как да се създаде първоначална стойност за поле с автоматично увеличение в MySQL?

За да възстановите avtoinkremetnogo поле на първоначалната стойност на съществуващите таблици с данни показват:

След това, когато се добавят, на следващия запис е името на голям брой ID + 1

Ако искате да създадете таблица:

Как да използвате безплатни записи номер?

След отстраняване на записите в таблица, база данни, автоматично увеличава номер освободен и никога няма да се използва. Тя е изработена специално за уникални операции. Например, когато се решава дали синхронизация в разпределени бази данни.

Ако използвате идентификатора за номерирането kogtoruyu polzovetlyu шоу, на "дупки" в номерацията - не е приятна гледка.

Има два варианта:

След всяко отстраняване на дъмпинг auto_increment 1 с командата:

След добавяне на записа за нея номер вместо mysql_insert_id на стандартните функции () с помощта на следното:

Тя търси "дупка" в (брой свободни идентификатор) за номериране, и се опитва да направи първата свободна, ако е успешно, последният добавен рекорд ще има ID "дупки" и се върна в стаята. В случай на честото използване на данните, кеширани в променлива памет.

Изводът от свързани бази данни

Изходна всички области на KATEG и поле име на GR. Внимание със същите имена на полета. Те са взети от втората основа.

Проверка на състоянието на записа

Ако има поне един запис отговаря на условието:

Изтриването на свързаните с бази данни

Понякога искате да напишете този тип заявка:

Но това няма да стане, това е еквивалентно на работния код:

Брой записи

Преброяване на броя на записите, които отговарят на условието

Първи ключови просто добавят записи

За да се получи само се използва добавен ключ функцията за записи

Номерата на номер поле UNIQUE auto_increment в MySQL

В 99% от случаите не е необходимо да се направи. Уникален ключ е създаден, за да остане "дупка" в номерацията при изтриване на записи. Но, понякога е необходимо. Така например, съм създал уеб сайт и написа позоваване на клиента на локалната машина, разбира се, имаше много промени. Подобно, когато "живеят vykladyvanii", за да изглежда красива. Това е за случая и да направи следните skriptik:

Как да получите списък на записите в низ идентификатор за състоянието на MySql

За да изберете от списъка на вписванията в низ идентификационните кодове ще използвате функцията MySql GROUP_CONCAT

Намерете в свързани таблици загубил записи
(Записи не с еталонна стойност)

Ако искате да намерите и изтриете сираци записи:

DELETE съответното предложение ще бъде:

Заявка за определяне потомство без родители изглежда така:

Съответният предложението ИЗТРИЙ ги изтрива:

Колко съобщения са били изпратени по време на всеки час на деня?

Покръстване на TIMESTAMP DATETIME и обратно

MyISAM или InnoDB?

MyISAM на InnoDB по-бързо - е съмнително. Те са предназначени за различни видове приложения:
  • MyISAM - таблетки, предназначени за приложения с много голяма свобода в страната на четене (например, те ще бъдат добре се държаха при 1000 отчитания за запис 1). Трябва да се разбере, че те не поддържат едновременен запис. Т.е. към момента на поставяне на рекорди в таблица на всички останали искания са висящи и чакат!
  • InnoDB - поддържа едновременен запис в продължение на много малки четения спад в производителността в сравнение с MyISAM. Всъщност, при наличие на заявки за записване на паралелно четене от една и съща InnoDB възможно плоча (за разлика от MyISAM), и съответно, изпълнението на тези таблици ще бъде над средното ниво.

Mysql как да се игнорира грешки при зареждането на сметището?

Използвайте ключ "-f" - тя позволява да се продължи, дори ако възникне грешка в процеса. Например:

Long MySQL заявка и за какво да го замените?

Това искане се извършва от 100tys.zapisey маса, ако повече от 10 секунди, за да го счупят на две, всяка изпълнена за по-малко от секунда:

MySQL база данни, създадена характер и промяна на всички полета

Искането за превръщането на основата:

Ако имате MySQL сървър версия на 5+ имате късмет! който ще бъде в състояние да изпълни подобно искане тук:

Сменете! db_name на вашия Database Name.

След SQL заявка получите отговор в стила:

Копирайте го, да го поставите в формата на SQL заявка на и изпълнение, резултатът - напълно променен кодиране на всички маси в UTF8 - насладете се на времето, запазена!

Освен, че базата трябва да бъде най-правилното кодиране, връзката трябва да инсталирате и правилното кодиране:

Най-популярни: