是一个订座系统,现有表:CREATE TABLE Appointment
(
AppointmentId INT(12),
ID_USER varchar(20),
StartTime Datetime,
SeatNO INT(2),
Status INT(1),
PRIMARY KEY (AppointmentId),
FOREIGN KEY (ID_USER) REFERENCES Users(UserID)
ON DELETE NO ACTION
ON UPDATE CASCADE,
);SeatNO是座位号
假定一个十分小概率事件,两个客户,要约同个时间同个座位,同时提交预约请求,那同时写入数据库会出错吧?这种情况应该怎么解决?谢谢!
(
AppointmentId INT(12),
ID_USER varchar(20),
StartTime Datetime,
SeatNO INT(2),
Status INT(1),
PRIMARY KEY (AppointmentId),
FOREIGN KEY (ID_USER) REFERENCES Users(UserID)
ON DELETE NO ACTION
ON UPDATE CASCADE,
);SeatNO是座位号
假定一个十分小概率事件,两个客户,要约同个时间同个座位,同时提交预约请求,那同时写入数据库会出错吧?这种情况应该怎么解决?谢谢!
插入时使用mysql 事务。同时写入后判断是否正确,如果不正确则回滚。否则提交rollback
commit