我必须从表中选择未使用的项目,将带有其他信息的项目移动到将被称为useditems
的已使用表格。当项目最终移动时,我必须从未使用的表中删除这些项目。
所以我写了下面的查询。
INSERT INTO USED select KNumber from unused limit 1000;
DELETE FROM unused limit 1000;
我唯一关心的一点是它总是选择相同的记录,因为我没有在查询中使用任何订单,而在表格中我只有单列。所以只删除插入的记录。
我是mysql的新手。
答案 0 :(得分:1)
而是使用带有order by
子句的limit
子句来确保相同的记录选择并通过赢得排除限制,因为只有限制才可能最终插入/删除不同的设置数据,而您的目标是删除要插入的同一组数据。
INSERT INTO USED select KNumber from unused order by KNumber limit 1000;
DELETE FROM unused order by KNumber limit 1000;
答案 1 :(得分:0)
为确保该方法,您可以删除已放入USED表中的那些记录:
Delete from Unused
where kNumber in (
select distinct kNumber from Used
)
答案 2 :(得分:0)
根据所插入的数据,在insert
上写下Used
从Unused
删除的触发器。
drop trigger if exists used_ai;
delimiter //
CREATE trigger used_ai after insert on used
for each row
begin
delete from Unused where kNumber = New.kNumber;
end//
delimiter ;