0

我在一个表中有 N 条记录,我想从一个表中移动所有记录,另一个说旧表table1 和新表table2。我有一个带有子查询的查询,可以从表中选择记录进行插入。假设有 10000 条记录在插入 6000 条记录时它会出现一些异常,它结束了,但仍然table2是空的,我想知道这是 5999 条记录,它会被插入到数据库中吗?

提前致谢 ,,

如果它不值得回答或任何原因让我知道拒绝投票的原因,我可以改进它

4

1 回答 1

1

我有一个带有子查询的查询,可以从表中选择要插入的记录

我假设您有一些INESRT INTO table2(<COLUMN LIST>) SELECT <COLUMN LIST> FROM table1 WHERE ...正在运行以移动记录。

如果是这样,则 INSERT 语句作为事务的一部分运行,并且只有在语句成功执行时才会提交,即如果它能够处理该查询INSERT返回的所有记录。SELECT否则,事务将回滚并且不会插入任何记录。

在这里我想知道它会被插入到数据库中的 5999 条记录吗?

INSERT在执行语句时,这些记录将被插入到 tmp 位置的工作表中。如果一切顺利,它将被提交到主表。

于 2013-04-20T05:19:45.833 回答