易截截图软件、单文件、免安装、纯绿色、仅160KB

注意Mysql数据截断

Beware of MySQL Data Truncation
http://www.mysqlperformanceblog.com/2009/02/07/beware-of-mysql-data-truncation/
比如:有一个表aritcle和另一个表article_comment,关联是article的id
CREATE TABLE `article` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `article_comment` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `text` varchar(200) NOT NULL,
  `article_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `art_id` (`article_id`),
  CONSTRAINT `art_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
set sql_mode='';
insert into article values(12345678901,'name1');
insert into article_comment(text,article_id) values('text1',12345678901);
insert into article_comment(text,article_id) values('text2',12345678902);
查看数据:
article表
4294967295 name1
article_comment表
1 text1 4294967295
2 text2 4294967295
从中可以看出,本来第二个插入的评论想关联另一个文章,但是却关联到了第一篇文章,这是因为Mysql的Data Truncation
show warnings显示
Warning | 1265 | Data truncated for column 'article_id' at row 1
这会造成:
(1)评论关联到错误的文章
(2)同一篇文章关联到许多的评论(这会造成性能问题)
怎样解决呢?
set sql_mode='STRICT_ALL_TABLES';
insert into article_comment(text,article_id) values('text1',12345678903);
这会报错:
[SQL] insert into article_comment(text,article_id) values('text1',12345678903);
[Err] 1264 - Out of range value for column 'article_id' at row 1
因此也就避免了上述问题。


相关文档:

简单的PHP操作Mysql类

<?php
/*
 * 名称 : MySQL数据库基本操作
 * 作者 : pjx
 * 版本 : v 2010/02/25 v 1.0
 * 说明 : 该类用于对MySQL做一些简单的操作
 * 示例 :
 * 实例 => $db = new DB_MYSQL($database),打个$database数据库
 * 查询数据库 => $db->query($sql_str),查询$sql_st ......

Mysql替代解决方案Cassandra

http://incubator.apache.org/cassandra/
http://zh.wikipedia.org/wiki/Cassandra
Apache Cassandra是一套开源分布式数据库管理系统。它最初由Facebook开发,用于储存特别大的数据。
主要特性:
分布式
基于column的结构化
高伸展性
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一 ......

实现Java连接mysql(源码)!

Java连接mysql数据库,代码经过运行准确无误。
下面为实例---->
用数据库操纵工具(例:SQLyogEnt)操纵mysql建表,或dos下建,如下:
数据库名:scutcs
表名:student
表内容:
sno  char[7]  NO NULL Primary Key;
sname  varchar[8]  NO NULL;
sex  char[2]  NO NULL; ......

MySQL锁用法介绍

http://book.51cto.com/art/200803/68118.htm
摘要:《深入浅出MySQL——数据库开发、优化与管理维护》从数据库的基础、开发、优化、管理4方面对MySQL进行了详细的介绍,其中每一部分都独立成篇,每一篇又包括多个章节。本书面向实用,内容覆盖广泛,讲解由浅入深,适合于各个层次的读者。
第20章 锁问题
锁是 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号