有人可以帮帮我 我是mysql的新手 创建一个存储过程,从mysql 中我的数据库中的所有表中删除30天以前的日期列中的行可能重复:
procedure in mysql
答案 0 :(得分:0)
您可以这样做:
DELETE FROM MyTable
WHERE MyTable.MyDate < SUBDATE(@NOW, 30)
答案 1 :(得分:0)
分隔符// create procedure delete_data(schemata varchar(25)) 开始 DECLARE tab_name varchar(64); DECLARE完成了TINYINT DEFAULT 0;
DECLARE table_name_cur cursor for select table_name from information_schema.TABLES where table_schema = schemata;
DECLARE CONTINUE HANDLER for NOT FOUND SET done = 1;
OPEN table_name_cur; read_loop:LOOP FETCH table_name_cur INTO tab_name;
IF done THEN LEAVE read_loop; END IF;
- 从tab_name删除PRS_DATE&lt; now() - 间隔1个月;
设置@x = concat('delete from',tab_name,'where','PRS_DATE \&lt;','now() - interval 1 month');
选择@x;
从@x准备stmt2;
执行stmt2;
deallocate准备stmt2;
END LOOP;
CLOSE table_name_cur; 结束 // 分隔符;