mysql> create table ef (bc time);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into ef values (current_timestamp);
Query OK, 1 row affected (0.00 sec)

mysql> select * from ef;
+----------+
| bc       |
+----------+
| 11:33:26 |
| 11:33:35 |
| 11:33:39 |
+----------+
3 rows in set (0.00 sec)

mysql> create table ii(qq datetime);

由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。
CREATE TABLE test (   
uname varchar(50) NOT NULL,   
updatetime timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP   
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

MySQL中,默认值无法使用函数也就是你无法设置某一列,默认值是 NOW () 这样的处理
假如需要某列的默认值为当前数据库时间,那么可以使用 TIMESTAMP 数据类型。插入的时候,填写 null 即可。

mysql> create table testA ( dt TIMESTAMP );
Query OK, 0 rows affected (0.09 sec)

mysql> insert into testA VALUES( null );
Query OK, 1 row affected (0.01 sec)

mysql> insert into testA VALUES( null );
Query OK, 1 row affected (0.08 sec)

mysql> select * from testA;
+---------------------+
| dt                  |
+---------------------+
| 2011-10-15 20:30:35 |
| 2011-10-15 20:30:36 |
+---------------------+
2 rows in set (0.00 sec)

select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1<>2,'a'='a','a'<>'b',其目的就只有一个,where 的条件为永真,得到的结果就是未加约束条件的。

如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,否则要在第一个出现的地方加where
where 1=1的写法是为了检化程序中对条件的检测
打个比方有三个参数a, b, c
@sql=select * from tb'
这三个参数都可能为空
这时你要构造语句的话,一个个检测再写语句就麻烦

select * from account where username like "%leo.lee%";
update account set state = 1 where state != 1
select count(*) from account where state != 1;

FEDERATED是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件。
但通过FEDERATED引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中(这一点很重要)。
使用FEDERATED建表语句如下:
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'
创建成功后就可直接在本地查询相应的远程表了。

需要注意的几点:

1.本地的表结构必须与远程的完全一样。
2.远程数据库目前仅限MySQL
3.不支持事务
4.不支持表结构修改

mysql特殊处理的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. APP自动化测试中Monkey和 MonkeyRunner

    在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念.自动化测 ...

  2. 纠错工具之 - Proovread

    BioInf-Wuerzburg/proovread - Github 主要是来解读 proovread 发表的文章,搞清楚它内在的原理. Proovread,这个工具绝对没有你想的那么简单,它引入了 ...

  3. Windows 10:解决开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用的方法

      开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用应该是不少网友都遇到过. 近日在使用Windows 10 Build 9926中,也出 ...

  4. python——挖装饰器祖坟事件

    装饰器是什么呢? 我们先来打一个比方,我写了一个python的插件,提供给用户使用,但是在使用的过程中我添加了一些功能,可是又不希望用户改变调用的方式,那么该怎么办呢? 这个时候就用到了装饰器.装饰器 ...

  5. 自定义N维空间数组

    class Space : IEnumerable<Space> { public object Filler { get { return filler ?? (filler = Top ...

  6. Objective-C( protocol协议)

    protocol 协议 protocol:用来声明方法 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end 2.如何遵守协议 1> ...

  7. 回车键转tab键解决方案一

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. WCF事务应用[转]

    在B2B的项目中,一般用户注册后,就有一个属于自己的店铺,此时,我们就要插入两张表, User和Shop表. 当然,要么插入成功,要么全失败. 第一步: 首先看一下项目的结构图: 第二步: 准备工作, ...

  9. 使用UISegmentedControl的一个注意事项

    NSArray* array = [[NSArray alloc]initWithObjects:@"机会",@"联系人", nil]; //先确定segmen ...

  10. tinymce 编辑器 上传图片

    tinymce编辑器进行本地图片上传 首先下载tinymce.js之后 在form中添加一个<textarea>元素 给其一个id和name 然后就可以初始化编辑器了 tinymce.in ...