我在一个表中有 N 条记录,我想从一个表中移动所有记录,另一个说旧表table1
和新表table2
。我有一个带有子查询的查询,可以从表中选择记录进行插入。假设有 10000 条记录在插入 6000 条记录时它会出现一些异常,它结束了,但仍然table2
是空的,我想知道这是 5999 条记录,它会被插入到数据库中吗?
提前致谢 ,,
如果它不值得回答或任何原因让我知道拒绝投票的原因,我可以改进它
我有一个带有子查询的查询,可以从表中选择要插入的记录
我假设您有一些INESRT INTO table2(<COLUMN LIST>) SELECT <COLUMN LIST> FROM table1 WHERE ...
正在运行以移动记录。
如果是这样,则 INSERT 语句作为事务的一部分运行,并且只有在语句成功执行时才会提交,即如果它能够处理该查询INSERT
返回的所有记录。SELECT
否则,事务将回滚并且不会插入任何记录。
在这里我想知道它会被插入到数据库中的 5999 条记录吗?
INSERT
在执行语句时,这些记录将被插入到 tmp 位置的工作表中。如果一切顺利,它将被提交到主表。