Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Поиск несуществующего значения.

Ответить
Настройки темы
MySQL - Поиск несуществующего значения.

Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Есть два скрипта которые работают с одной базой, и оба добавляют в нее записи. Точнее один - многопользовательский сервер. Он для скорости работы сначала делает запрос типа "SELECT MAX(id)", а потом INSERT, но между запросами проходит достаточно много времени и они со вторым скриптом бывает портят данные. Эти записи удаляются и остаются "дыры" в числовом ряду.
Можно ли найти эту "дыру" и записать данные в нее?

Отправлено: 09:45, 04-06-2008

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


DedAlex,
А может дать юазе самой об этом заботиться и воспользоваться полем, в котором автоматически будут генерироваться ID?
стать для размышления

-------
Fortes fortuna adiuvat


Отправлено: 09:53, 04-06-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


vadimiron, переписать сервер довольно проблематично, там эта вставка идет в нескольких местах. Он создавался для монопольного доступа к базе и не преполагает совместной работы (на запись) с другими программами. Вариант с блокированием базы (LOCK), тоже не помогает.

-------
Все сказаное является только моим личным мнением.


Отправлено: 10:27, 04-06-2008 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Если "переписать сервер довольно проблематично", значит есть желание заполнять "дыры" исключительно вторым скриптом?

Как вариант - создать таблицу-пул пропусков и переписать второй скрипт, чтобы брал id оттуда. Красивого (быстрого) решения найти имеющиеся пропуски нет, а на будущее надо так же переписать процедуру которая удаляет кривые записи, чтобы информация о них попадала в пул.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:21, 04-06-2008 | #4


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


DedAlex,
Вообще можно, конечно, скриптом вытаскивать все значения и циклом проверять пустые значение, но естественно это не эффективно.
Я тоже за вариант, который предложит Busla

-------
Fortes fortuna adiuvat


Отправлено: 11:45, 04-06-2008 | #5


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Цитата Busla:
Если "переписать сервер довольно проблематично", значит есть желание заполнять "дыры" исключительно вторым скриптом? »
Да, только вторым скриптом. Для него скорость работы не столь критична.
Цитата Busla:
Как вариант - создать таблицу-пул пропусков и переписать второй скрипт, чтобы брал id оттуда. »
А можно поподробнее. Вы предлагаете изменить сервер, что бы он при удалении записи заносил "пустой" номер в другую таблицу?

-------
Все сказаное является только моим личным мнением.


Отправлено: 12:51, 04-06-2008 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


DedAlex, а у вас удалением кривых записей занимается основной серверный скрипт? - он разве в состоянии делать это корректно? - как я понял из описания, для него это - совершенно нештатная ситуация.

Отправлено: 14:37, 04-06-2008 | #7


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Цитата Busla:
DedAlex, а у вас удалением кривых записей занимается основной серверный скрипт? »
Это игровой сервер, и в результате такой ошибки получается что у человека оказывается другая вещь. Но с такой записью сервер прекрасно работает, ведь формат данных остается правильным, просто получается другой идентификатор.

-------
Все сказаное является только моим личным мнением.


Отправлено: 15:13, 04-06-2008 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Поиск несуществующего значения.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Удаление несуществующего Контроллера домена DarkMaximus Microsoft Windows NT/2000/2003 43 19-08-2013 10:03
Удаление несуществующего Exchange сервера... Lazy caT Microsoft Exchange Server 5 15-01-2010 13:14
Загрузка - [решено] При входе в систему каждый раз появляется окно Свойства несуществующего приложения set113 Microsoft Windows Vista 1 20-09-2009 01:17
Значения параметров h00ligan Автоматическая установка Windows 2000/XP/2003 1 21-06-2005 12:23
Значения абривеатур Trojn Хочу все знать 11 21-05-2003 23:58




 
Переход