Мне нужно к auto_increment поле в MySQL, который не является первичным ключом

При использовании инструментов анализа кода (например, FxCop), он рекомендует отметить метод static, если тот метод не получает доступ к данным экземпляра. Объяснение - то, что существует увеличение производительности. MSDN: CA1822 - Mark участников как статичные .

Это - больше инструкции, чем правило, действительно...

27
задан Umar Abbas 16 September 2015 в 09:17
поделиться

3 ответа

Просто установите уникальный индекс в составе (имя пользователя, дата).

ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`);

В качестве альтернативы вы можете попробовать

ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`);

, и я думаю, что в последнем случае вам нужно объявить эти столбцы НЕ NULL.

20
ответ дан 28 November 2019 в 05:46
поделиться

Вместо этого измените текущий первичный ключ на уникальный:

ALTER TABLE table DROP PRIMARY KEY, ADD UNIQUE KEY(username,date);

auto_increment после этого будет нормально работать без каких-либо проблем. Вы также должны поместить уникальный ключ в поле auto_increment, чтобы использовать его для обработки строк:

ALTER TABLE table ADD UNIQUE KEY(id);
1
ответ дан 28 November 2019 в 05:46
поделиться

Вместо того, чтобы сортировать массив и затем проверять его, я бы предложил написать реализацию функции сортировки сравнения, которая завершается, как только будет найден дубликат, user + thedate, run

ALTER TABLE users  ADD UNIQUE KEY user_date_idx (user,  thedate);
2
ответ дан 28 November 2019 в 05:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: