limit 1 внутри insert, и записать результат в одну из колонок, то гарантирует ли это то, что primary и значение в другой колонке будет всегда одно и то же (не будет ситуации, когда два разных записи имеют разный primary, но одинаковое значение в этой другой колоне)? При одновременных запросах
INSERT INTO T SELECT ... FROM S WHERE ...
Кто на ком стоял?
Вообще, приведите воспроизводимый пример (поскольку ссылки на понятия текста внутри текста у вас не очень выходят).
Нет
Нет, не гарантирует — или нет, не будет?
Но вообще, ты, похожэ, понял, что у него происходит — и я восхищаюсь твоими навыками перевода с юзерского.
Нет, не гарантирует
Да ладно, мне у тебя ещё поучиться нужно...
id - auto increment primary. Два параллельных запроса ниже могут дать одинаковый результат в поле id2? mysql innodb REPEATABLE READ INSERT INTO `FOO` (`id2`) VALUES ((SELECT `id` FROM `FOO` ORDER BY `id` DESC LIMIT 1) + 1);
Спасибо. А как можно проверить?
Запустить в цыкле десяток тысяч раз параллельно.
Вообще — нафига проверять? Доказательств, что не могут — нет, значит надо защищаться от того, что могут. ЗЫ Не страдайте фигнёй, берите дефолтный автоинкремент.
Обсуждают сегодня