Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 16:26   #1
FSKN
Новичок
Джуниор
 
Регистрация: 30.05.2013
Сообщений: 1
Вопрос Реализация "Грязного чтения"(транзакции) в MySQL

Здравствуйте, необходимо в БД реализовать "грязное" чтение. Вот только не знаю как это сделать, в методичке нету, одногруппник сказал, что он реализуется если в наличии два компа и сервер, на одном( в моем случае) реализовать нельзя.
У меня есть такие транзакции:
Код HTML:
Есть запросы такого вида, в которых необходимо сделать "грязное" чтение:
1) Увеличиваем ЗП на 100000
Код MySQL
1
2
3
4
start transaction;
update services set cost_of_service=cost_of_service+100000 where id_services=1;
select * from services;
rollback;
2) Добавляю человека с именем John
Код MySQL
1
2
3
4
5
6
start transaction;  
INSERT services (name_services, name_staff, data, cost_of_service)
VALUES ('licensing', 'John', '26.03.13', '80000'); 
commit;
select * from services;
rollback;
3) Передаем деньги от ивана николаю
Код MySQL
1
2
3
4
5
6
7
8
9
10
11
START TRANSACTION;
select * from services;
INSERT INTO services (`id_services`, `cost_of_service`)
VALUES (1, -4200)
ON DUPLICATE KEY UPDATE cost_of_service=cost_of_service + VALUES(cost_of_service);
select * from services;
INSERT INTO services (`id_services`, `cost_of_service`)
VALUES (2, +4200)
ON DUPLICATE KEY UPDATE cost_of_service=cost_of_service + VALUES(cost_of_service);
COMMIT;
select * from services;
Полный листинг БД:
Код HTML:
Услуги: 
лицензирование-licensing,
сделки с недвижимостью- real estate transactions,
консультации- consultation,
взыскание задолженностей- debt collection,
юридическое сопровождение сделок- legal support,
возврат НДС- VAT refund,
регистрация фирм- registration of firms
 
director, manager, lawyer, accountant(директор, менеджер, адвокат, бухгалтер)
Отделы:
оформление документов-paperwork,
правовой отдел-legal Department,
инженерный отдел-engineering Department,
 
Без внешних ключей:
create table departments (id_department int  AUTO_INCREMENT, namedepartment char (20), cabinet char (10), phone char (20), PRIMARY KEY (id_department));
create table staff (id_staff int  AUTO_INCREMENT, name_staff char (20), post char (20), namedepartment char (20), PRIMARY KEY (id_staff));
create table services (id_services int  AUTO_INCREMENT, name_services char (20), name_staff char (20), data date, cost_of_service decimal (10,2), PRIMARY KEY (id_services));
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('ivan', 'director', 'paperwork');
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('ksenia', 'manager', 'legal_department'); 
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('Nikolay', 'lawyer', 'paperwork');
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('elena', 'lawyer', 'paperwork');
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('dmitriy', 'ingeneer', 'engineering'); 
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('konstantin', 'lawyer', 'paperwork');
INSERT INTO staff (name_staff, post, namedepartment) VALUES ('ekaterina', 'lawyer', 'legal');
 
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('licensing', 'ivan', '26.03.13', '10000'); 
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('consultation', 'Nikolay', '5.02.13', '2000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('debt_collection', 'elena', '8.09.13', '1500');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('legal_support', 'dmitriy', '3.03.12', '2000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('vat_refund', 'konstantin', '5.01.12', '1000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('registration_of_firm', 'ekaterina', '10.07.12', '4000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('consultation', 'ekaterina', '20.08.12', '2000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('legal_support', 'ekaterina', '5.05.12', '10000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('legal_support', 'ekaterina', '1.02.12', '15000');
INSERT INTO services (name_services, name_staff, data, cost_of_service) VALUES ('debt_collection', 'ekaterina', '2.02.12', '18000');
 
INSERT INTO departments (namedepartment, cabinet, phone) VALUES ('paperwork', '13', '8888');
INSERT INTO departments (namedepartment, cabinet, phone) VALUES ('legal', '9', '7777');
INSERT INTO departments (namedepartment, cabinet, phone) VALUES ('engineering', '7', '5555');
FSKN вне форума Ответить с цитированием
Старый 31.05.2013, 13:55   #2
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Ну и читай в одном потоке в транзакции с уровнем изоляции Read Uncommitted.
А другим потоком пиши но не коммить.
the_deer_one вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Qt. Как перевести QSqlTableModel в режим "только для чтения"? HIC Qt и кроссплатформенное программирование С/С++ 1 14.10.2009 06:28
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Чтения "Просмотра событий" Windows Alex770 Win Api 1 26.08.2007 09:05