我有一个(对我来说)奇怪的问题。我尝试为我正在尝试执行的事务锁定一组表。但出于某种原因,至少我的一张桌子不会锁定。我无法锁定我的MySQL表
我的代码看起来是这样的,请remeber这只是我与当前问题的锁,但所有评论都赞赏:)
出于某种原因ba_flight犯规被锁定或那的问题,我最常用的有,但是,如果我只是打电话: 锁定表ba_flight它完全没问题。
-- SESSION A
-- Part 1 ba_flight
-- UNLOCK TABLES;
START TRANSACTION;
LOCK TABLES ba_booking WRITE,
ba_paid_booking WRITE,
ba_passenger WRITE,
ba_contact WRITE,
ba_weekday_factor READ,
ba_plane READ,
ba_flight READ,
ba_flight AS ba_f READ,
ba_weekly_schedule AS ba_ws READ,
ba_weekly_schedule READ;
-- ba_flight does not get locked
-- 1: Create the booking.
CALL new_booking(1, 6);
SHOW ERRORS;
COMMIT;
SET @bid = get_uncomplete_booking();
SELECT id
FROM ba_booking
WHERE contact_id IS NULL;
SELECT @bid AS "BID";
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12341234,
'Göran',
'Greenleaf');
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12351235,
'Adam',
'Jönsson');
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12361236,
'Niklas',
'of Gondor');
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12371237,
'Erik',
'Grey');
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12381238,
'Johan',
'Baggins');
INSERT INTO ba_passenger(booking_id,
ssn,
fname,
lname)
VALUES (@bid,
12381238,
'Elof',
'Baggins');
-- IF THIS IS FALSE THEN WE HAVE SOMETHING STRANGE GOING ON
-- WITH OUR BOOKING AND SHOULD ROLLBACK.
SELECT check_booked_passengers(@bid);
CALL new_contact(@bid,
'Göran',
'Greenleaf',
'[email protected]',
'+9973565677');
-- RETURNS TRUE IF BOOKING IS CORRECT
SELECT is_correct_booking(@bid);
COMMIT;
UNLOCK TABLES;
-- Part 3
-- START TRANSACTION;
LOCK TABLES ba_booking WRITE,
ba_paid_booking WRITE,
ba_passenger WRITE,
ba_flight WRITE,
ba_flight AS ba_f WRITE,
ba_contact WRITE,
ba_weekday_factor WRITE,
ba_weekly_schedule READ,
ba_weekly_schedule AS ba_ws READ,
ba_plane READ;
CALL pay_booking(@bid, 987654331);
COMMIT;
UNLOCK TABLES;
这是学校的分配只是为了让你知道我真的很想明白为什么我有这个问题。
请用“功课” – Cez
将此代码重新标记@ Marcus:谢谢..奇怪我已经出现了retag选项 – Cez
您是否收到关于ba_flight没有被锁定的错误?如果是这样,请添加详细信息。另外,请提供表格的引擎类型 – Cez