|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.10.2013, 13:12 | #1 |
Пользователь
Регистрация: 25.03.2010
Сообщений: 10
|
MySQL вывести и сразу удалить строку
Большое всем спасибо за ответы. Вопрос решен.
Последний раз редактировалось Bengl; 16.10.2013 в 15:33. |
16.10.2013, 13:38 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Опасаюсь такого удаления. Вообще непонятен термин 'первая строка таблицы'. Нет в таблице первой и последней строки. А есть первая строка в порядке какой-то сортированности. В SELECT-е брал бы уникальный идентификатор записи и уж по нем бы удалял. А решение естественно не оптимальное. Тем более, если много именно таких запросов подряд. Попытаться удалить одним DELETE сразу группу записей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.10.2013, 14:15 | #3 | |
Пользователь
Регистрация: 25.03.2010
Сообщений: 10
|
Цитата:
Но будет ли это быстрее? И чем плох/опасен мой вариант? На сколько я понимаю, при транзакции строка блокируется и не может произойти ситуации когда строка будет удалена без вывода. Как бы сделали вы? (в таблице нет уникальных идентификаторов, по сути вообще только 1 столбец). Спасибо. |
|
16.10.2013, 15:12 | #4 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Если у строки нет уникального ключа, то это уже неправильно и любое удаление может быть последним для таблицы. Насчёт быстроты, то как раз наличие уникального идентификатора с примари кей в разы увеличивает скорость работы.
Инкрементное поле никогда не поздно добавить. И всем вашим записям будет присвоен уникальный id. Потом можно будет удалять сразу множество записей одним запросом, что тоже увеличивает скорость работы и уменьшает нагрузку на MySQL сервер. В общем, без уникальных полей, ваша база ни что иное, как простой список строк. Вам в таком случае и база не нужна. Можно просто в текстовом файле хранить ))) Там хоть порядок строк есть, гы..
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
16.10.2013, 15:17 | #5 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Очередь предполагает некий порядок. Порядок в запросе задаётся конструкцией ORDER BY в вашем случае никакого порядка нет. То, что Вам кажется, что удаляется по порядку - это просто удача. Не уверен, что Вам всегда будет везти. Я бы тоже поостерёгся от такого кода. Цитата:
И почему в таблице нет ID (ну и, возможно поля, по которому можно выстроить записи в определённом, нужном Вам порядке) - непонятно! UPDATE когда я писал пост, не видел сообщения от grominfo. Полностью согласен с его мнением. я бы свой пост не писал, если бы его пост здесь уже увидел... |
||
17.10.2013, 10:33 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
ТС, зачем исходный вопрос затер? Получается три человека пустоте пытались помочь. Следующий раз можете не дождаться ответа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как удалить все ссылки сразу из всех документов? | Karyuudo | Microsoft Office Word | 0 | 19.11.2012 14:53 |
Двунаправленный линейный список строк. Вставить строку, удалить строку и заменить строку | tarasman11 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 05.07.2012 20:27 |
Не могу вывести сразу текст на экран при загрузке | Ksy | JavaScript, Ajax | 0 | 14.05.2011 13:11 |
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" | макарошка | Microsoft Office Excel | 15 | 05.10.2010 09:09 |
Как удалить сразу несколько записей из таблицы? | Vit@L | БД в Delphi | 5 | 16.02.2010 07:27 |