Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > MYSQL实用技巧两则
【标  题】:MYSQL实用技巧两则
【关键字】:MYSQL
【来  源】:http://blog.csdn.net/microhard/archive/2006/08/24/1114738.aspx

MYSQL实用技巧两则

Your Ad Here

发现两条MYSQL的使用技巧,当然可能很早就已经被人们熟知,但是我是刚刚才发现的 

一、timstamp类型的默认值

 建表的时候对于表中第一个timestamp类型的字段应该指定default值,否则MYSQL默认会在在建表语句后面增加一个关于Update 的触发器。

比如:

mysql>  create table ta ( tt timestamp, k varchar(10));

mysql
> show create table ta;
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                               |
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ta    | CREATE TABLE `ta` (
  `tt` 
timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `k` 
varchar(10default NULL
) ENGINE
=MyISAM DEFAULT CHARSET=latin1 | 
+-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

这样在只update 字段k的时候 ,tt字段会自动被更新为当前时间的。这样就会引起程序的错误了,需要格外关注。

二、关于字符串大小写问题

   如果对上表插入两条记录

mysql> insert into ta(k) values("a");
mysql
> insert into ta(k) values("A");

  那么如下的 SELECT语句会令我们的程序产生错误。

mysql> select * from ta where k  = 'a';
+---------------------+------+
| tt                  | k    |
+---------------------+------+
| 2006-08-24 23:19:27 | a    | 
| 2006-08-24 23:19:29 | A    | 
+---------------------+------+
mysql> select * from ta where k  = BINARY 'a';
+---------------------+------+
| tt                  | k    |
+---------------------+------+
| 2006-08-24 23:19:27 | a    | 
+---------------------+------+

因为WHERE子句没有区分大小写。

如果想区分大小写,需要在建表时对varchar类型 增加BINARY选项,或者查询的时候增加BINARY选项。


在asp中控制图片等级缩放:【上一篇】
开源供应链设计规范之 -- 数据库命名规范:【下一篇】
【相关文章】
  • MySQLAdmin用法
  • MYSQL不能从远程连接的一个解决方法
  • MySQL平台数据库备份方案详细说明
  • 如何安全的配置和应用MySQL数据库?
  • MySQL优化实例(基于my.cnf)
  • MySQL索引分析和优化解决方案
  • mysql自动备份
  • RHEL AS4U3+httpd2.2+apache-tomcat5.5+mysql5.0+php5
  • MySQL开发中的外键与参照完整性
  • 好东西:windown环境下的PHP MYSQL APACHE ZEND PHPMyAdmin 五合一安装程序
  • 【随机文章】
  • PHP基本语法
  • Virtual Server 使用指南之
  • 指针的概念
  • ORACLE监听器被优化大师删除的解决方法
  • 利用 gettext 来实现 PHP 的国际化编程
  • QQ斗地主辅助工具源代码 (图像识别版)
  • Java内存管理之软引用(Soft Reference)
  • 利用VMWARE自带文件共享功能实现文件共享
  • 终端设置
  • Solaris常用命令
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.