У меня есть поле validate_uniqueness_of: внутри моей модели ActiveRecord. Когда я делаю одно создание/обновление, он работает красиво, но мне нужно сделать небольшое создание пакета из файлов csv внутри транзакции. Когда я нахожусь в транзакции, validate_uniqueness_of не обнаруживает ошибку, и модель сохраняется!Validates_uniqueness_of не работает при выполнении большой транзакции
ответ
Может быть, что во время транзакции создаются не уникальные значения?
Проверять методы проверки перед транзакцией, а затем все значения по-прежнему отсутствуют в таблице и, таким образом, уникальны.
Редактировать: Создать индекс с уникальным свойством, включенным для вашего поля, и транзакция завершится неудачно и, таким образом, предотвратит добавление неповторимых элементов. Для некоторых вы должны что-то добавить это в файл переноса
add_index("tablename", "fieldname", { :name => "fieldname_index", :unique => true })
Edit 2: Сделка, как это будет даст что-то вроде «ActiveRecord :: StatementInvalid: Mysql :: Ошибка: запись Дублированный«123 'для ключа 1: < sql заявление здесь > "ошибка.
Table.transaction do
i1 = Table.new
i1.fieldname = "123"
i1.save
i2 = Table.new
i2.fieldname = "123"
i2.save
end
validates_uniqueness_of зависит от условий гонки, и вам по-прежнему нужны соответствующие уникальные ограничения для вашей базы данных. Вы описываете this situation. Ссылка предоставляет несколько решений.
я уже с помощью: уникальный => верно для поля, которое должно быть уникальным, но и без везения внутри транзакции (это работает, если я сделать простой SQL вставку в командной строке) – PanosJee
- 1. validates_uniqueness_of не работает
- 2. Тайм-ауты Entity Framework при выполнении транзакции
- 3. PHP PDO Откат транзакции при выполнении сбой?
- 4. validates_uniqueness_of при обновлении car.number
- 5. Проблема транзакции при выполнении кода C#
- 6. Завершение транзакции фрагмента при выполнении задачи
- 7. Сделка завершается при выполнении другой транзакции
- 8. UInt64 получает iffy при выполнении большой математики?
- 9. Rails validates_uniqueness_of, похоже, не работает для меня
- 10. Рельсы вложенные атрибуты: validates_uniqueness_of не работает
- 11. validates_uniqueness_of с условиями не работает, как ожидалось
- 12. Почему validates_uniqueness_of работает до before_create?
- 13. Rails 3 validates_uniqueness_of работает неожиданным образом
- 14. Относительный путь не работает при выполнении jar
- 15. Функция не работает? Ошибка при выполнении запроса
- 16. Emacs: Yanking не работает при выполнении макроса
- 17. jQuery не работает при выполнении html()
- 18. Удалить триггер не работает при выполнении
- 19. перевод не работает при выполнении приложения
- 20. Весеннее кэширование не работает при большой нагрузке?
- 21. тайм-аут транзакции при выполнении запроса на DBpedia
- 22. Вызывает избыточное соединение conn.rollback при выполнении транзакции в jdbc?
- 23. Почему следующий SQL Server вступает в тупик при выполнении транзакции?
- 24. Странная ошибка в Python3 при выполнении вычислений большой Int
- 25. JPA 2.0 недостаточные привилегии при выполнении вставки из транзакции
- 26. Как получить высокую производительность при большой транзакции (postgresql)
- 27. Сделка транзакции WebSql не работает
- 28. Нет вида найден для идентификатора 0x7f0900ad при выполнении фрагмента транзакции
- 29. Приложение зависает при выполнении транзакции фрагмента в runOnUiThread
- 30. Оптимизация InnoDB - «использовать транзакции при выполнении обновлений» - почему?
она до сих пор не работа – PanosJee
какая база данных вы используете. Я просто попытался добавить те же значения в уникальное поле, используя транзакцию, и получил ошибку (используя MYSQL) – Veger
5.1, когда я делаю обычную вставку в оболочку db mysql дает ошибку, как ожидалось – PanosJee