mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对需要操作的表放入子查询条件中的,因此我们尽量避免子查询中涉及到需要操作的表,如果无法避免,则可以考虑用连接查询的方式进行. ERROR 1093 (HY000): You can't specify target table 'dir' for update in FROM clause 1.2 根
--将更新条件保存到临时表里 CREATE TABLE tmp3 AS (SELECT username FROM oa_user WHERE username NOT IN (SELECT username FROM nst_t_account)); --更新表数据,条件从临时表里取 UPDATE oa_user SET usr_update=NOW() WHERE username IN (SELECT username FROM tmp3); --删除临时表 DROP TABLE tmp3
一 所有数据库->所有触发器: SELECT * FROM information_schema.triggers; 二 当前数据库->当前所有触发器(假设当前数据库为gmvcs_base)第一种: USE gmvcs_base;//将当前数据库切换为gmvcs_base SHOW triggers; 第二种: SELECT * FROM information_schema.triggers WHERE TRIGGER_SCHEMA='gmvcs_base''; PS: 1 显示当前数据
mysql> select b.username,a.subject,a.money,FROM_UNIXTIME(a.ctime) from shop_pay a INNER JOIN common_member b on a.uid=b.uid where a.ctime>='1429428970' and a.ctime<='1429689355' and a.`status` = 2 into outfile '/tmp/test.xls';
select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncate(index_length/1024/1024,2),' MB') as index_size from information_schema.tables where TABLE_SCHEMA = 'acc_log' group by TABLE_NAME order by data_length des