mysql 子查询删除记录
mysql 可以通过子查询得到要删除的记录条件,然后通过子查询得结果匹配要删除的记录。但是 mysql 不能直接删除子查询表中的数据,必须通过一个临时表来解决。例如:
delete from t_transaction where exists
(select d.* from t_ti_category a,t_category b,t_trade_item c,t_transaction d
where b.FID=a.FCategory and a.FTradeItem=c.FID and c.FTrans=d.FID and b.FID=2549 and t_transaction.FID=d.FID)
在该 sql 语句中由于子查询中包含 t_transaction 表,但我们同时要删除 t_transaction 表中的记录,所以允许该语句时报如下错误:
1093-You can't specify target table 't_transaction' for update in from clause.
修改后的操作语句如下:
delete from t_transaction where exists
(select e.FID from
(select d.* from t_ti_category a,t_category b,t_trade_item c,t_transaction d
where b.FID=a.FCategory and a.FTradeItem=c.FID and c.FTrans=d.FID and b.FID=2549) e
where t_transaction.FID=e.FID)
相关文档:
connect方法是java.sql.Driver接口中定义的方法,如果连接的数据库不同,那么为不同的数据库编写JDBC驱动将变得很灵活,实现Driver接口即可。连接数据库时首先得装载JDBC驱动,也就是调用 Class.forName(“com.mysql.jdbc.Driver”)方法,在第一篇中已经列出mysql jdbc Driver类的源码,此类继承NonRegisteringD ......
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
断开:exit (回车)
创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
删除授权: revoke select,insert,update,delete om *.* from ......
在mysql中输入SHOW variables like "have_%"查看,显示如下:
mysql> SHOW variables like "have_%";
+-----------------------+----------+
| Variable_name | Value |
+-----------------------+----------+
| have_archive   ......
你使用过别人的备份方案来备份你的MySQL数据吗?你有多关心你的数据?你敢确定你现在正在运行的脚本就是可靠的,可恢复的备份,而且在运行过程中不会影响你的关键作业吗?在回答这个问题之前,先回答下面十个问题吧:
1. 备份要求停止数据库吗?如果不需要,那么备份的时候会影响什么?块设备?I/O负载?缓冲?或者是其他?
......
有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。
1.自动增长的数据类型处理
MYSQL有 ......