|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
Приветствую! Есть таблица связи задач, тэгов, пользователей. На ней есть уникальный индекс (id_task, id_tag, id_user). Требуется заменить в строках одного пользователя на другого, и при этом не нарушить уникальный индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 13:01 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980, удаляем индекс, апдейтим, возращаем индекс ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 13:08 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
Любой апдейт заменяется на удаление ненужных данных и вставку нужных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 13:16 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980, Гавриленко Сергей Алексеевич Любой апдейт заменяется на удаление ненужных данных и вставку нужных. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 13:49 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
entrypoint, и наличие референсов не смутит никого ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 14:00 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Любой апдейт заменяется на удаление ненужных данных и вставку нужных. Заменяется только при изменение ключа индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:03 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
invm Гавриленко Сергей Алексеевич Любой апдейт заменяется на удаление ненужных данных и вставку нужных. Заменяется только при изменение ключа индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:05 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
В таблице 3 млн строк и нагрузка примерно 2 тысячи транзакций в секунду. Удаление индекса и перестройка индекса не подходят. Попробую удалить сначала, потом вставить. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:31 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980 В таблице 3 млн строк и нагрузка примерно 2 тысячи транзакций в секунду. Удаление индекса и перестройка индекса не подходят. Попробую удалить сначала, потом вставить. я воспользовался калькулятором и сделал вывод - вы врёте ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:43 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980 В таблице 3 млн строк и нагрузка примерно 2 тысячи транзакций в секунду. Удаление индекса и перестройка индекса не подходят. Попробую удалить сначала, потом вставить. Вы это вот все всерьез сейчас? Вы хотя бы на тестовом сервере попробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:45 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
Запустил сейчас не на боевом сервере, выполнил последовательно DROP INDEX и CREATE UNIQUE INDEX. По времени заняло полторы минуты. Это много или мало? Для веба дак много по-моему. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:01 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
автородного пользователя на другого 3 update через "левого" пользователя ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:03 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980, А точно есть проблема, так же работает ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:16 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980 Требуется заменить в строках одного пользователя на другого, и при этом не нарушить уникальный индекс. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:21 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 16:22 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
entrypoint, у меня MS SQL 2008R2, поэтому заменил IIF на CASE. Всё так, ваш пример работает, но может неясно описал условия задачи - нужно не местами поменять, а заменить скажем id_user_1 на id_user_2. при этом уже в базе может существовать id_task, id_tag, id_user, а присутствует уникальный индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 10:26 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980 entrypoint, у меня MS SQL 2008R2, поэтому заменил IIF на CASE. Всё так, ваш пример работает, но может неясно описал условия задачи - нужно не местами поменять, а заменить скажем id_user_1 на id_user_2. при этом уже в базе может существовать id_task, id_tag, id_user, а присутствует уникальный индекс. Да, действительно не очень понятно. Кажется , что пример именно и делает то, что требуется. Не могли бы дать исходные данные, и результат, который хотели бы получить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 10:50 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980 нужно не местами поменять, а заменить скажем id_user_1 на id_user_2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 11:02 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
gepard1980, Насколько я понял может возникнуть ситуация, когда 1 -> 2 2 -> 1. А как поведет себя MERGE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 11:31 |
|
UPDATE полей с уникальным индексом
|
|||
---|---|---|---|
#18+
invm, благодарю! То что нужно! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 15:42 |
|
|
start [/forum/topic.php?fid=46&fpage=70&tid=1686535]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 122ms |
0 / 0 |