Java 如果在同一事务中插入了一条记录,并且删除了同一条记录,那么这是否算作插入?
如果我有一个数据库事务,其中在同一事务中创建和删除了一个数据库,那么它会被视为一个插入吗Java 如果在同一事务中插入了一条记录,并且删除了同一条记录,那么这是否算作插入?,java,mysql,oracle,jdbc,Java,Mysql,Oracle,Jdbc,如果我有一个数据库事务,其中在同一事务中创建和删除了一个数据库,那么它会被视为一个插入吗 谢谢 当然是插入的,因为如果您有一个自动递增字段,这将真正反映您是否尝试插入记录。虽然我真的不知道你问这个问题的目的是什么。假设你的意思是在你的问题中插入一行,然后删除 从它是否发生并在INNODB中逆转的角度来看,是的 见下文: create table foo ( id int auto_increment primary key, thing varchar(20) not null )E
谢谢 当然是插入的,因为如果您有一个自动递增字段,这将真正反映您是否尝试插入记录。虽然我真的不知道你问这个问题的目的是什么。假设你的意思是在你的问题中插入一行,然后删除 从它是否发生并在INNODB中逆转的角度来看,是的 见下文:
create table foo
( id int auto_increment primary key,
thing varchar(20) not null
)ENGINE=INNODB;
start transaction;
insert foo(thing) values ('frog');
commit;
start transaction;
insert foo(thing) values ('frog2');
-- Point-in-time A
rollback;
start transaction;
insert foo(thing) values ('frog3');
commit;
select * from foo;
+----+-------+
| id | thing |
+----+-------+
| 1 | frog |
| 3 | frog3 |
+----+-------+
删除或回滚显示innodb间隙异常,这意味着在发生删除时保留了该范围。换句话说,自动增量被保留、开槽,然后回滚(或删除)
不仅如此,在上面的“时间点A”,根据当时的设置,系统中的其他用户甚至可以看到上面的青蛙2行。在下一次通话中被回滚
请参阅我对各种innodb gap异常问题的简短回答。有许多易于创建的间隙案例,例如插入过程中的外键错误。数据库已创建并删除-->您是说记录正确吗?谁或什么人在进行计数?如果没有更多的上下文,任何人都很难猜出你真正在问什么。ddl调用(create)会破坏事务。自动提交“计入插入”是什么意思?例如,如果您使用序列作为行ID,它们将增加…如何计数?你到底是什么意思?