С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 25/12/10 в 16:08 |
sergio21: действительно, как программа (допустим 3 потока одновременно) узнает, какие ид им брать?
|
|
|
|
С нами с 28.07.07
Сообщения: 425
Рейтинг: 375
|
Добавлено: 25/12/10 в 16:30 |
а нельзя взять добавить колонку статус, и туда писать значение когда уже эта строчка использована?
и потом читать данные
SELECT * FROM table WHERE status=0 LIMIT 0,20
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 25/12/10 в 17:18 |
sergio21 писал: | Pentarh: чтобы указывать его в цикле программы, которая будет выдергивать одну за другой строки из базы и обрабатывать их. |
Вы извращенец. Есть уже уникальный индекс ведь, зачем дублирующий праймари? Потому что в институте так учили?
И вообще, если не нравится логика автоинкремента, и если так нужно это поле, то вставляй и высчитывай его значение сам, хуле
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 26/12/10 в 00:23 |
sergio21 писал: | Pentarh: чтобы указывать его в цикле программы, которая будет выдергивать одну за другой строки из базы и обрабатывать их. |
Самое маразматическое использование primary key, которое можно придумать. Он не для этого используется, а для того, чтобы на него ссылаться из других таблиц - для нормализации. И все. А то потом тебе приходит в голову мысль, что надо бы и вычищать данные, удалять - и вся логика разваливается.
Если у тебя такой вопрос, как тут, возник - ты делаешь что-то очень и сильно не так. Хочешь верь, хочешь нет.
Используй ORDER BY ... LIMIT... и будет все хорошо - из того, что тут прочитал. Для "циклов" в SQL придуман SELECT. И работать будет намного быстрее, чем ручные циклы по ключу.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 26/12/10 в 00:56 |
ТС наверно не в курсе что mysql_fetch_assoc() можно юзать в цикле
|
|
|
|
>100 сайтов вебкам. ссылки.
С нами с 31.03.08
Сообщения: 2372
Рейтинг: 3463
|
Добавлено: 27/12/10 в 03:46 |
Pentarh писал: | ТС наверно не в курсе что mysql_fetch_assoc() можно юзать в цикле |
Не в курсе, и не стесняюсь этого. Мои познания в MySQL ограничиваются способностью без шпаргалки составить запрос вида Select * From 'Table' Where ... .
За всем остальным лезу в инет. Спасибо за подсказку, посмотрю, что это за функция такая.
FXIX писал: | ...Про ALTER TABLE почитай в мане... |
Вот именно ради таких подсказок я и задавал свой вопрос. Конечно, если эта команда каждый раз создает новую таблицу и стирает старую, то ее не стоит применять. Спасибо!
ibiz писал: | ...как программа (допустим 3 потока одновременно) узнает, какие ид им брать?... |
Планирую сделать вспомогательную табличку, в которой будет сохраняться и постоянно актуализироваться "Progress-Point".
Каждый из потоков будет оттуда читать/туда писать, с какой строкой из базы он работает. Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться.
Наверное, так и сделаю. Что-то вроде: Select key1, key2 From table Where Status = false Limit 1
С удовольствием выслушаю дальнейшую критику и замечания. А пока всем рейтинг и большое спасибо!
|
|
|
|
>100 сайтов вебкам. ссылки.
С нами с 31.03.08
Сообщения: 2372
Рейтинг: 3463
|
Добавлено: 27/12/10 в 03:56 |
Оффтопик: Pentarh писал: | ... Потому что в институте так учили? ... |
Когда я в институте учился, ни MySQL, ни интернета (в нынешнем его понятии) не существовало еще.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 27/12/10 в 09:37 |
sergio21 писал: | Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. Тогда можно, в принципе, и от id отказаться.
Наверное, так и сделаю. Что-то вроде: Select key1, key2 From table Where Status = false Limit 1
С удовольствием выслушаю дальнейшую критику и замечания. А пока всем рейтинг и большое спасибо! |
если порядковость данных не важна, то так и надо делать
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 27/12/10 в 11:29 |
ТС, учил бы ты матчасть, а? Я думал ты хоть что то знаешь по клиент-серверному взаимодействию и архитектуре баз mysql, а тут оказывается вообще все запущено. Сходи на mysql.ru или еще куда нибудь.
|
|
|
|
Добрых Дел Мастер
С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227
|
Добавлено: 27/12/10 в 21:47 |
sergio21 писал: |
Планирую сделать вспомогательную табличку, в которой будет сохраняться и постоянно актуализироваться "Progress-Point".
Каждый из потоков будет оттуда читать/туда писать, с какой строкой из базы он работает. Можно, конечно, добавить поле Status, где будет помечаться, обработана уже данная запись, или еще нет. |
лучше с флагами работай. добавь поле
Цитата: | enum('0', '1', '2') comment '0 - необработано. 1 - обработано. 2- обрабатывается' |
|
|
пришел к победе коммунистического труда
|
6
|
|
|