我有个表t,含a,b,c,d四个字段,无主外键、约束关系等,但数据量很大,每次操作只能排序后操作一部分,比如 select * from t order by t.a asc limit 200 offset 1000,然后,我想删除这次选择出来的这200条记录,如何实现呢?
解决方案 »
- 用navicat建了一个表,然后表中插入数据提示table read only??
- Mysql:Using filesort处理不掉.唉.
- mysql导入sql文件出错!
- mysql乱码问题
- Sql替换字段内的内容如果带特殊符号怎么办?
- 想在mysql的基础上做一个dbms,但源码看得很头大,那位兄弟有开发文档啊?
- 请问怎么让记录重新排序啊?
- select * from mytable order by name ASC 排序问题!
- 怎么回事?我的mysql数据库用任意用户名都能联接显示?而mysql的user表中没设它们啊????? (请看)
- MySQL的or语句有没有类似短路求值的特性?
- mysql 创建外键提示ERROR 1064(42000)错误,谢谢
- SQL语句问题。。。!!!!!!!!!!!!!
********** 错误 **********
错误: 语法错误 在 "order" 或附近的
并且,即使能行的话,也只能是大致正确,不能保证delete的完全就是select出来的内容。
delete a from t a,(select * from t order by t.a asc limit 200 offset 1000) b where a.id=b.id
定期检测表t的内容,只保留预先定义的容量,对于超过容量的部分则导出到文件中(通过copy 排序后的表内容 to file),同时在数据库表中删除掉导出的记录,但不允许丢失记录。