|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.05.2013, 16:26 | #1 |
Новичок
Джуниор
Регистрация: 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'); |
31.05.2013, 13:55 | #2 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Ну и читай в одном потоке в транзакции с уровнем изоляции Read Uncommitted.
А другим потоком пиши но не коммить. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 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 |