Я создаю веб-службу WCF для приложения Silverlight, и мне нужно иметь запись для чтения/записи при блокировке при изменении.Пессимистическая блокировка записи?
Я использую MySQL версии 5.5.11.
Чтобы быть более конкретным, я хотел бы, чтобы запрос не читал данные из строки при ее изменении.
Команды два SQL для UPDATE и SELECT, на самом деле очень просто, что-то вроде:
Update (следует заблокировать для записи/чтения):
UPDATE user SET user = ..... WHERE id = .....
Select (не должен быть в состоянии читать, когда заперт выше запроса):
SELECT * FROM user WHERE id = .....
Вот что я пытался, но это не похоже на работу или заблокировать вообще ничего:
START TRANSACTION;
SELECT user
FROM user
WHERE id = 'the user id'
FOR UPDATE;
UPDATE user
SET user = 'the user data'
WHERE id = 'the user id';
COMMIT;
Зачем даже выполнять это в транзакции? 'UPDATE' запускает атомарно все самостоятельно. Тем не менее, то, что вы пытаетесь, должно по-прежнему работать; что заставляет вас думать, что это не так? – eggyal