Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果在同一事务中插入了一条记录,并且删除了同一条记录,那么这是否算作插入?_Java_Mysql_Oracle_Jdbc - Fatal编程技术网

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,它们将增加…如何计数?你到底是什么意思?