考虑我在MySQL数据库中有两个表A
和B
,它们彼此相关:
create table A (
id int(11) not null auto_increment,
name varchar(45),
is_archived TINYINT(1),
create_date datetime)
create table B (
id int(11) not null auto_increment,
a_id int(11),
name varchar(45)
如何使用商店过程检查表A中的项目,如果create_date早于某个值(例如DATEDIFF(NOW(), a.create_date) >30
),请将表A中的项目更新为a.is_archived =1
,然后删除项目在表B中与此项目相关。
答案 0 :(得分:0)
我猜您的存储过程看起来像:
//update table1
UPDATE A SET is_archived = 1
WHERE DATEDIFF(NOW(), create_date) >30
//remove from table2
UPDATE B INNER jOIN A
ON A.id = B.a_id SET DELETED = 1
WHERE DATEDIFF(NOW(), a.create_date) >30
或者,如果您要删除表格中的行,请将UPDATE
替换为DELETE