Mysql 插入表中的某些行时,自动保存这些行的选项有哪些?
我有一个名为Analysis\u Data的表,它存储软件代理基于代码分析生成的度量数据。代理自动将度量插入分析\u数据表中,并从以前的分析中删除一些度量。但是,我想保留分析\u数据表中的所有数据 mysql中是否有任何机制可以自动将新插入的行从分析_数据表复制到另一个表保存的_数据,这样即使代理在以后的分析周期中删除行,我也可以使用数据 我使用的是mysql版本14.14发行版5.7.13。您可以使用触发器: 代码和插入后触发器,如中的示例所示 大概是这样的:Mysql 插入表中的某些行时,自动保存这些行的选项有哪些?,mysql,sql,Mysql,Sql,我有一个名为Analysis\u Data的表,它存储软件代理基于代码分析生成的度量数据。代理自动将度量插入分析\u数据表中,并从以前的分析中删除一些度量。但是,我想保留分析\u数据表中的所有数据 mysql中是否有任何机制可以自动将新插入的行从分析_数据表复制到另一个表保存的_数据,这样即使代理在以后的分析周期中删除行,我也可以使用数据 我使用的是mysql版本14.14发行版5.7.13。您可以使用触发器: 代码和插入后触发器,如中的示例所示 大概是这样的: DELIMITER // CR
DELIMITER //
CREATE TRIGGER Back_Analysis_Data
AFTER INSERT
ON Analysis_Data FOR EACH ROW
BEGIN
INSERT INTO Saved_Data ( Col1, Col2 )
VALUES ( NEW.Col1, NEW.Col2 );
END; //
DELIMITER ;
您可以使用触发器:
代码和插入后触发器,如中的示例所示
大概是这样的:
DELIMITER //
CREATE TRIGGER Back_Analysis_Data
AFTER INSERT
ON Analysis_Data FOR EACH ROW
BEGIN
INSERT INTO Saved_Data ( Col1, Col2 )
VALUES ( NEW.Col1, NEW.Col2 );
END; //
DELIMITER ;
我建议不要使用触发器和存储过程,因为它们不能扩展。创建第二个表只是MySQL额外的维护和存储开销 这方面的最佳实践是在客户端代码上实现软删除。为此,您需要在分析数据中添加一个名为“软删除”的附加列,如下所示:
DELIMITER //
CREATE TRIGGER Back_Analysis_Data
AFTER INSERT
ON Analysis_Data FOR EACH ROW
BEGIN
INSERT INTO Saved_Data ( Col1, Col2 )
VALUES ( NEW.Col1, NEW.Col2 );
END; //
DELIMITER ;
ALTER表分析数据
添加列软\u删除TINYINT非空默认值0
添加键软键删除键(soft\u delete
)
然后,您的查询将读取未删除的数据
从分析数据中选择*软删除!=0限制10
一起读取已删除/未删除的数据
选择*from Analysis_Data limit 10我建议不要使用触发器和存储过程,因为它们不能扩展。创建第二个表只是MySQL额外的维护和存储开销 这方面的最佳实践是在客户端代码上实现软删除。为此,您需要在分析数据中添加一个名为“软删除”的附加列,如下所示:
DELIMITER //
CREATE TRIGGER Back_Analysis_Data
AFTER INSERT
ON Analysis_Data FOR EACH ROW
BEGIN
INSERT INTO Saved_Data ( Col1, Col2 )
VALUES ( NEW.Col1, NEW.Col2 );
END; //
DELIMITER ;
ALTER表分析数据
添加列软\u删除TINYINT非空默认值0
添加键软键删除键(soft\u delete
)
然后,您的查询将读取未删除的数据
从分析数据中选择*软删除!=0限制10
一起读取已删除/未删除的数据
选择*from Analysis_Data limit 10非常感谢您引入术语软删除。这是我第一次听说软删除:)用谷歌搜索一下软删除我发现了这个,在我的场景中,软删除可能不是一个好主意。但你的回答最终让我找到了我的答案。再次感谢!不利的一面是可能会有很多不规则的行,我们都知道我们的查询(好的,其他人的查询)通常是完整的表扫描或“部分关闭一个where”via。事实上,可以说,大多数op问题将展示一个可怕的模式,与它们实际拥有的go-to查询相对比。所以我会把这些行放到另一个归档表中。对于较小的表,软删除非常感谢引入术语软删除。这是我第一次听说软删除:)用谷歌搜索一下软删除我发现了这个,在我的场景中,软删除可能不是一个好主意。但你的回答最终让我找到了我的答案。再次感谢!不利的一面是可能会有很多不规则的行,我们都知道我们的查询(好的,其他人的查询)通常是完整的表扫描或“部分关闭一个where”via。事实上,可以说,大多数op问题将展示一个可怕的模式,与它们实际拥有的go-to查询相对比。所以我会把这些行放到另一个归档表中。对于较小的表,软删除非常好