|
|
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Возник вопрос по уникальным полям в mysql. Допустим есть таблица с полем обьявленным как уникальное. С алгоритмической стороны это такой себе Set данных. Как лучше добавлять записи(которых будет довольно много) в эту таблицу - сначала делать проверку на существование такой записи и если отсутствует добавлять либо сразу пытаться добавить запись(без проверки на существование) которая в случае дубля сама по себе не будет добавлена и mysql сгенерирует ошибку ? Какой подход стоит использовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 00:43:17 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Третий вариант - автоинкрементное поле. Подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 00:50:22 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
к сожалению нет, так как мне не нужны повторяющиеся данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 00:51:56 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Возможно я чуть неточно сформулировал задачу - уникальное поле - это varchar(128) которое содержит email адреса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 00:58:15 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
В таком случае подойдет любой из Ваших двух вариантов. Возможно, вопрос стоит о накладных расходах? В первом случае будет два запроса и дважды будет использован индекс. Во втором случае только один запрос. Полагаю, что генерация ошибки во втором случае будет менее накладной, чем выполнение целого отдельного запроса. Конечно, могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 01:35:43 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Alexanoid, Делайте: 1. или REPLACE вместо вставки (это если надо сохранить новые данные и пофиг на то, что было ранее под этим ключом) 2. или в INSERT добавляйте IGNORE (это если положительно относитесь к новым данным, в смысле готовы на них положить, но сохранить старые), 3. или к оператору INSERT добавляйте обработку ON DUPLICATE KEY UPDATE ... и указывайте что и как, из полей записи этой записи, надо обработать при вставке дублирующегося ключа ручками... можете например, добавить поле с подсчетом сколько дубликатов сюда пыталось воткнуться, как дополнительно... или обновлять дату изменения записи для ведения архивных данных или логирования действий юзверей или ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 07:56:46 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
vkle, Arhat109 спасибо большое ! я еще не пробовал но судя по всему INSERT IGNORE это то, что мне нужно ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2013, 12:34:31 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, что пишу не по теме, т.к. не нашел подходящую. В общем такая ситуация: в базе данных имеется поле "id" - AUTO_INCREMENT. После удаления из таблицы определенных записей ИД записей не упорядочивается. Пример: ряд записей где id - 1,2,3,4,5. Удалили третий ряд - получилось: 1,2,4,5. И при добавлении следующей записи ИД уже будет 6. т.е 1,2,4,5,6. Как сделать так, чтобы строго упорядочивался столбец id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 21:24:56 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Nik0la, а можно поинтересоваться зачем??? сделоть то можно, но зачем???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 21:31:06 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Дело в том, что этот Id потом выводится в таблицу на сайте. Коряво получается. "Беспорядочность" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 21:32:44 |
|
||
|
вопрос по уникальным полям
|
|||
|---|---|---|---|
|
#18+
Ну и зачем тебе в таблице оригинальный айди. бери просто нумеруй вывод. вот храниться у тебя в таблице - множество чегото. Зачем мне читая список этого(часть списка) знать его оригинальный айди??? мне это чемто полезно будет? выводисебе нумерацию скриптом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2013, 23:14:26 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1836225]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 312ms |

| 0 / 0 |
