Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вопрос по уникальным полям / 11 сообщений из 11, страница 1 из 1
17.08.2013, 00:43:17
    #38369581
Alexanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Возник вопрос по уникальным полям в mysql. Допустим есть таблица с полем обьявленным как уникальное. С алгоритмической стороны это такой себе Set данных.

Как лучше добавлять записи(которых будет довольно много) в эту таблицу - сначала делать проверку на существование такой записи и если отсутствует добавлять либо сразу пытаться добавить запись(без проверки на существование) которая в случае дубля сама по себе не будет добавлена и mysql сгенерирует ошибку ?

Какой подход стоит использовать ?
...
Рейтинг: 0 / 0
17.08.2013, 00:50:22
    #38369585
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Третий вариант - автоинкрементное поле. Подойдет?
...
Рейтинг: 0 / 0
17.08.2013, 00:51:56
    #38369587
Alexanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
к сожалению нет, так как мне не нужны повторяющиеся данные
...
Рейтинг: 0 / 0
17.08.2013, 00:58:15
    #38369590
Alexanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Возможно я чуть неточно сформулировал задачу - уникальное поле - это varchar(128) которое содержит email адреса
...
Рейтинг: 0 / 0
17.08.2013, 01:35:43
    #38369598
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
В таком случае подойдет любой из Ваших двух вариантов. Возможно, вопрос стоит о накладных расходах? В первом случае будет два запроса и дважды будет использован индекс. Во втором случае только один запрос. Полагаю, что генерация ошибки во втором случае будет менее накладной, чем выполнение целого отдельного запроса. Конечно, могу ошибаться.
...
Рейтинг: 0 / 0
17.08.2013, 07:56:46
    #38369628
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Alexanoid,

Делайте:
1. или REPLACE вместо вставки (это если надо сохранить новые данные и пофиг на то, что было ранее под этим ключом)

2. или в INSERT добавляйте IGNORE (это если положительно относитесь к новым данным, в смысле готовы на них положить, но сохранить старые),

3. или к оператору INSERT добавляйте обработку ON DUPLICATE KEY UPDATE ... и указывайте что и как, из полей записи этой записи, надо обработать при вставке дублирующегося ключа ручками... можете например, добавить поле с подсчетом сколько дубликатов сюда пыталось воткнуться, как дополнительно... или обновлять дату изменения записи для ведения архивных данных или логирования действий юзверей или ...
...
Рейтинг: 0 / 0
17.08.2013, 12:34:31
    #38369674
Alexanoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
vkle, Arhat109 спасибо большое !

я еще не пробовал но судя по всему INSERT IGNORE это то, что мне нужно !
...
Рейтинг: 0 / 0
18.08.2013, 21:24:56
    #38370140
Nik0la
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Прошу прощения, что пишу не по теме, т.к. не нашел подходящую.
В общем такая ситуация: в базе данных имеется поле "id" - AUTO_INCREMENT. После удаления из таблицы определенных записей ИД записей не упорядочивается.
Пример: ряд записей где id - 1,2,3,4,5. Удалили третий ряд - получилось: 1,2,4,5. И при добавлении следующей записи ИД уже будет 6. т.е 1,2,4,5,6.
Как сделать так, чтобы строго упорядочивался столбец id?
...
Рейтинг: 0 / 0
18.08.2013, 21:31:06
    #38370146
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Nik0la,

а можно поинтересоваться зачем???

сделоть то можно, но зачем????
...
Рейтинг: 0 / 0
18.08.2013, 21:32:44
    #38370147
Nik0la
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Дело в том, что этот Id потом выводится в таблицу на сайте. Коряво получается. "Беспорядочность"
...
Рейтинг: 0 / 0
18.08.2013, 23:14:26
    #38370193
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по уникальным полям
Ну и зачем тебе в таблице оригинальный айди. бери просто нумеруй вывод.

вот храниться у тебя в таблице - множество чегото.

Зачем мне читая список этого(часть списка) знать его оригинальный айди???

мне это чемто полезно будет?

выводисебе нумерацию скриптом
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вопрос по уникальным полям / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]