我正在创建一个商务网站,我陷入了一个数据库问题,我正在存储客户订单,请告诉我哪一个更好,MYISAM或Innodb我必须在客户订单表中使用transaction like功能,我个人更喜欢myisam,因为它比innodb快得多,它还支持全文搜索。有什么方法可以使用myisam中的transaction like rollback功能,以便如果出现任何问题,表将回滚到其以前的状态如何做到这一点,而不需要任何外部库或任何其他服务器端访问,我必须使用MYSQL
我使用MySQL中的事务来存储订单。每个订单都有OrderID (BIGINT),它看起来如下: XXXXXX0001,最后四个数字递增(1620200001,1620200002,1620200003,.)。
这项交易的工作方式如下:
start transaction
get new OrderID (increment by 1)
do some stuff
commit/rollback
保存事务最多需要几秒钟,如果在很短的时间内创建了多个订单,则可以将重复的OrderID插入数据库中。在执行第一次订单之前,第二次订单被分配给相同的OrderID,目前这是下一个顺序。
防止这种情况的最
当我删除父表时,我需要删除表的子表。常见的订单/详细信息示例。
我使用这个代替触发器:
CREATE TRIGGER trg_OderDelete
ON Oders
INSTEAD OF DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
Delete fro
在Doctrine中刷新时,我可以更改sql执行顺序吗?
Mysql有一个著名的bug。这些语句可能会导致死锁。
INSERT INTO operations(id, user_id) VALUES(null, 123);
UPDATE users SET user_name = 'name' WHERE id = 123;
Deadlock found when trying to get lock; try restarting transaction
所以,我在冲的时候改变顺序,更新然后插入。我该怎么做?
文档显示订单是预先定义的。
( 1)所有实体插入( 2)所有实