七月
18
2016

Mysql 中数据表的 ID 增量为 2 的问题

今天偶然发现 live 数据库的数据表的所有 ID 都是以偶数形式插入的,全是2, 4, 6, 8, 10 这样的偶数类型。 而且本地数据库正常,没有这方面的问题,偏偏上线以后就是这么奇怪。 于是百度了一下,果然还看到不只是我自己遇到了这个问题。 搜索的结果来自百度知道,原本的问题是这样的: 为什么mysql表中自增长id以奇数形式增长? 我们数据库的表之前还正常。突然出现所有的表中不论手动添加内容,还是自动添加内容,自增长id都是以奇数形式生成的,就1,3,5,7,9,11,13.。。。。这样的形式自增长。请问高手如何解决啊~~谢各位了~ 还好这个问题是有答案的: 数据库的 step 被设置成 2 了 通过执行 SQL: SHOW VARIABLES LIKE 'auto_inc%'; 通过上述命令可以查看数据库的步长和偏移量。通过查询,在 live 上面 auto_increment_increment 的值为 2,auto_increment_offset 的值为 2。 auto_increment_increment 决定了增量值,auto_increment_offset 决定了偏移值,所以会出现上面提到的问题。 解决问题的 SQL: SET @auto_increment_increment = 1; SET @auto_increment_offset = 1; 问题本身没有多少难度,但是没有这方面的意识的话,颇有一种无从下手的感觉 ,所以便在自己的 PHP 博客中记录下来吧。
十二月
04
2015

MySQL 中 = 和 := 两者的区别

在什么MySQL入门教程和常规的SQL语句中,我们一般不会遇到一个初接触时很是奇怪的 := 符号。一个 = 已经能够满足我们的大部分需求了。 但是不知道并不意味着不存在,随着对MySQL的了解的加深,自然也就会接触到这里要进行比较的 := 符号了。 在 MySQL 中, := 是真正意义上的赋值符号,也就是类似于 PHP 的 $a = 1 + 2 这样的赋值语句中的 = 的作用了。而在 MySQL 中,单独的 = 是一个比较符号哦。 不过在 MySQL 中,有写特殊的地方,= 也会客串一下赋值符号的。那就是在 UPDATE 语句和 SET 语句中,其它时候都记住它是比较符号就行了。 当 SET 了一个变量以后,若要为这个变量赋予新的值,就要用 := 符号,而不是 = 符号了哦。 现在给出一个比较直观的例子: SET @EE = ""; @EE := CONCAT(@EE, 'new string');
八月
25
2015

Mysql提示unknow table engine InnoDB

这个是真正地干货,在千篇一律的解决方案中,这个是真正的解决方法: 今天对MySQL数据库进行了物理拷贝,遇到一个棘手的问题,MySQL能正常启动,不过打开数据表的时候,提示Unknow Table Engine InnoDB. 错误提示很明显是没有加载InnoDB

阅读全文>>

八月
20
2015

Mysql中Explain命令解释

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了

阅读全文>>