Можно ли заблокировать условие вставки? чтобы параллельная транзакция не вставила такую

же строчку

23 ответов

5 просмотров

Можно

RAFIZ- Автор вопроса
Ilya Zviagin
Можно

расскажите, плес

RAFIZ
расскажите, плес

Называется уникальный индекс, Погугли

RAFIZ- Автор вопроса
RAFIZ
а кроме этого способа?

А зачем что-то кроме этого? СУБД устроены логично и в них для обеспечения одной функциональности обычно используют одно средство а не 10

RAFIZ- Автор вопроса
Ilya Zviagin
А зачем что-то кроме этого? СУБД устроены логично ...

а самый строгий уровень изоляции транзакций не поможет добиться этой цели?

RAFIZ- Автор вопроса
RAFIZ
а самый строгий уровень изоляции транзакций не пом...

две параллельные вставки сначала проверяют что строки нет. к моменту вставки если одна из них опередила, вторая фейлится

RAFIZ- Автор вопроса
RAFIZ
две параллельные вставки сначала проверяют что стр...

я сейчас не говорю про самый эффективный способ. но просто: так можно?

RAFIZ
а самый строгий уровень изоляции транзакций не пом...

Для того чтобы уровень изоляции позволял достигать этой цели тебе нужно как-то оформить в базе данных какое-то правило, какой-то конфликт который бы изоляция транзакций могла разрешать А тут у тебя никакого правила не подразумевается в запросе. Но даже если бы было правило к сожалению уровень serializable не всегда будет защищать от всех конфликтов, он теоретически Это должен делать, но не обязан. Кстати правилом должен был бы быть тот же самый уникальный ключ

RAFIZ- Автор вопроса
Ilya Zviagin
Называется уникальный индекс, Погугли

у меня колонка varchar(1024) и попытка включить его в комбинированный уникальный ключ выдаёт Error Code: 1071. Specified key was too long; max key length is 3072 bytes версия 8.0

RAFIZ
у меня колонка varchar(1024) и попытка включить ег...

Ну не надо делать такие длинные поля уникальными

RAFIZ- Автор вопроса
Ilya Zviagin
Ну не надо делать такие длинные поля уникальными

если с текущим видом поля никак эту задачу не решить, то придётся менять, да.

RAFIZ- Автор вопроса
Ilya Zviagin
Ну не надо делать такие длинные поля уникальными

в 8.1.0 нельзя такие длинные поля делать уникальными?

RAFIZ- Автор вопроса
RAFIZ
в 8.1.0 нельзя такие длинные поля делать уникальны...

потому что насколько знаю лимит от версии к версии повышался как минимум однажды

RAFIZ- Автор вопроса
Ilya Zviagin
Везде нельзя

а если уменьшить длину varchar, то имеющиеся уже данные останутся в том же виде?

RAFIZ
потому что насколько знаю лимит от версии к версии...

Повышается, но он есть. Ну и если у тебя чтобы обеспечить уникальность нужно такое длинное поле это ОЧЕНЬ странно. Это видимо попытка построить естественный ключ на пользовательских данных.

RAFIZ
а если уменьшить длину varchar, то имеющиеся уже д...

Учти ещё , что varchar в байтах, а строки - в символах.

RAFIZ- Автор вопроса
Ilya Zviagin
Повышается, но он есть. Ну и если у тебя чтобы обе...

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

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

Обсуждают сегодня

Желаю получить совет от великих ботмейкеров которые успешно поднимали ботов на несколько тысяч одновременно активных юзеров Какая чушь нужна людям прямо сейчас, и что стоило ...
ռɛ ʋɛʀʍօʀɛ
6
кто тебе сказал, что она угроблена? многие только начинают жизнь, после увольнения из Гугла, Майкрософта, Оракла,...
Alex Kom
9
Окей, а продвигать эту шляпу как? Я ни разу ботов не двигал , ибо не делал ничего для себя толком🧐
ռɛ ʋɛʀʍօʀɛ
5
В альтернативе у нас сидеть горбатиться на дядю в галерах, пока не помрешь или пока тебя не заменят более молодым сотрудником, который готов гребсти в два раза дешевле. Вот и ...
Кабан Кабанов
7
И еще, я вчера чутка запутался, показы это типо рекламные посты или рассылки, а приветы?
Ilya Shvechikov
5
сори за оффтоп, но просто в тему https://www.youtube.com/watch?v=8Q_YfcpgdGU
Alex Kom
8
По какой цене продают скрипты анонимного чата? Я за 500 даже готов 😂😂😂
Ilya Shvechikov
7
Мне вот интересно jwt токен для подключения сторонего сайта к оду норм идея?
Andrij Moskivets
3
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Или ты челендж хочешь?
Ilya Shvechikov
7
Карта сайта