我是MySql的新手,所以请保持温和。
Oracle中的RETURNING
子句或MySQL中的SQL Server中的Inserted'/'Deleted
表是否等效?我想做的是以下几点:
将已删除的行集插入表B中。
请帮忙!
由于
答案 0 :(得分:4)
很遗憾,您无法在一个查询中同时执行插入和删除操作,但如果您使用的是事务存储引擎,则可以在一个事务中完成所有操作(喜欢InnoDB)。此外,Oracle和PostgreSQL支持RETURNING
,但MySQL不支持delete
,因此您需要编写单独的insert
和begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;
语句。
但是,使用事务将保证只从tableA中删除成功复制的数据。请考虑以下事项:
{{1}}
答案 1 :(得分:0)
为什么不在表B中插入要从表A中删除的行,然后从表A中删除行?你可以这样做:
insert into tableB select * from tableA where condition;
然后
delete from tableA where condition.