时间:2021-07-01 10:21:17 帮助过:23人阅读
参考
有时候我们处理某个表时,需要先备份下这个表到当前这个库,然后再执行sql. 站在sql角度,就无需在mysqldump或者诸如导出sql的方式来备份了. 同库表的备份更简单
- <code>CREATE TABLE 新表 SELECT * FROM 旧表</code>
- <code>CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
- 即:让WHERE条件不成立.
- 方法二:(由tianshibao提供)
- CREATE TABLE 新表 LIKE 旧表</code>
- <code>INSERT INTO 新表 SELECT * FROM 旧表</code>
- <code>INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表</code>
参考
执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。
- <code>mysql> set autocommit=0;
- Query OK, 0 rows affected (0.01 sec)
- mysql> show variables like "autocommit";
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | autocommit | OFF |
- +---------------+-------+
- </code>
navicat快捷键
- <code>4.ctrl+r 运行查询窗口的sql语句
- 5.ctrl+shift+r 只运行选中的sql语句</code>
正确使用navicat的姿势
- <code>SET autocommit = 0;
- CREATE DATABASE maotai;
- DROP DATABASE maotai;
- ROLLBACK; #如果我后悔了即可
- COMMIT; #已确认sql没问题
- </code>
一般执行sql我都用navicat来搞,一方面便于核实结果复制给对方反馈,执行起来也顺手一些,因为写sql会有自动提示. ,在一方面他执行时候有快捷键
事务时怎么回事呢?
- <code>张三给李四转账500元。那么在数据库中应该是以下操作:
- 1,先查询张三的账户余额是否足够
- 2,张三的账户上减去500元
- 3,李四的账户上加上500元
- 以上三个步骤就可以放在一个事务中执行提交,要么全部执行要么全部不执行,如果一切都OK就commit提交永久性更改数据;如果出错则rollback回滚到更改前的状态。利用事务处理就不会出现张三的钱少了李四的账户却没有增加500元或者张三的钱没有减去李四的账户却加了500元。
- </code>
- <code>InnoDB支持事务,MyISAM不支持
- InnoDB支持外键,MyISAM不支持</code>
- <code>- 用sql语句做数据汇聚,查出status 和 对应的总数, 按照状态码总数来排序
- select status,sum(count) from log group by status;
- </code>
[sql] 同库表(结构)的备份和sql聚合&navicat使用
标签:... net 永久 sql语句 一点 value 备份 tail 技术分享