У меня простая таблица содержит несколько столбцов: Id, Name, Profit, IsBusy
. IsBusy
- BIT
значение. Мне нужно создать sql-скрипт, который выберет все не занятые записи (IsBusy равен 0), и одно и то же время устанавливает этот флаг равным 1. Таким образом, другие серийные или параллельные запросы не получат эту запись, потому что флаг равен 1. Может существовать какую-то технику выпустить мою задачу? Благодарю.выбрать и установить значение столбца
ответ
Вашего требование, чтобы остановить пользователь считывания данных при работе с некоторыми конкретными строками, должны быть обработаны с СДЕЛКАМИ и ИЗОЛЯЦИЕЙ LEVEL.
Вы должны изучить самый строгий уровень изоляции i.e SERIALIZABLE.
Вы должны изменить уровень изоляции транзакций на SERIALIZABLE, а затем выбрать строки и получить эксклюзивные блокировки в строках, блокирующих других пользователей, которые также могут читать одни и те же строки.
Вы можете изменить уровень изоляции транзакций на SERIALIZABLE с помощью следующей команды.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Важное примечание
Имейте в виду, это может очень хорошо привести к обширному блокировки пользователей, и вы можете endup со многими несчастными конечных пользователей, у которых экран держать замораживания :).
Также вы упомянули, что хотите выбрать строки, а затем обновить.
Оператор обновления получает ОБНОВЛЕНИЕ ЗАПИСИ на строки с уровнем изоляции по умолчанию (Read Uncommitted). Если вы обновляете строку, пользователи не смогут получить доступ к строке до тех пор, пока ваше обновление не будет завершено или не будет отменено.
Может быть, что-то вроде следующей работы для вас?
update X
set IsBusy = 1
output inserted.Id, inserted.Name
where IsBusy = 0
В основном вышеуказанный запрос возвращает обновленные записи операции обновления. – alas
- 1. MYSQL выбрать и сгруппировать, если значение столбца
- 2. Установить значение столбца Order RDLC
- 3. Невозможно выбрать максимальное значение из столбца
- 4. Как выбрать значение столбца из вложенной таблицы
- 5. R выбрать значение из индекса столбца
- 6. Как выбрать значение с именем столбца, которое также необходимо выбрать?
- 7. MYSQL: как выбрать наивысшее значение из столбца?
- 8. выбрать значение 2 таблицы для определенного столбца
- 9. выбрать значение столбца отчётный другой колонке
- 10. Как выбрать максимальное значение столбца на основе других значений столбца?
- 11. MySQL значение ВЫБРАТЬ столбца зависит от другого столбца
- 12. MySQL столбца выбрать и сравнить
- 13. Как изменить значение столбца и выбрать в базе данных
- 14. Как выбрать отдельное значение и его количество из столбца?
- 15. выбрать минимальную дату и другое значение столбца для максимальной даты
- 16. Поиск столбца в Excel, найти значение, выбрать и удалить
- 17. Как выбрать и декодировать значение столбца в запросе codeigniter
- 18. не может установить следует выбрать значение УСПЕШНОГО
- 19. мкр-выбрать не может установить выбранное значение
- 20. установить значение по умолчанию для столбца extjs
- 21. Как установить значение столбца RadGridView программно
- 22. Как установить значение столбца, если оно недоступно
- 23. Как установить значение в имени столбца переменной?
- 24. Установить начальное значение для столбца с AUTOINCREMENT
- 25. sequelize.js - установить значение столбца при создании
- 26. Установить значение столбца на основе другого столбца в SQL
- 27. mysql - установить значение столбца, равное вставке id?
- 28. Как установить значение столбца счетчика в MySQL?
- 29. Установить значение столбца на основе другого столбца в Postgres?
- 30. Невозможно установить имя столбца. Значение нарушает предел MaxLength этого столбца
вы либо «ВЫБРАТЬ», либо «ОБНОВЛЯТЬ» значение, а не оба одновременно. – Lamak
Мне нужно сначала выбрать, а затем обновить. Но мне нужно как-то заблокировать стол, который я думаю. Как разрешить многозадачность в моей задаче? – user2598575
Итак, вам нужно выбрать обновленные записи? – alas