mysql失误足迹

来源:互联网 发布:淘宝ifashion是什么 编辑:程序博客网 时间:2024/05/01 12:06


1.自动编号
mysql自动编号 跟mssql有一个不同,就是可以显示插入自动编号的列,如当前最大的编号为15,你可以用
insert into table(id) values(70)来插入数据,如果你插入的是字符,它会转成数字,如果没有转成功,则编号为自动加一,如insert into table(id) values(‘cccc'),它会自动新增编号为16的编号。
2. 删除一个表某列的有重复的记录,#1093 - You can't specify target table 'XXXX' for update in FROM clause
参考:http://gladness.itpub.net/post/6254/59117
DELETE FROM table_name WHERE column_name IN (
SELECT
column_name
FROM (

SELECT
column_name
FROM
table_name b
GROUP BY b.
column_name
HAVING count( * ) >1
)c
)
3.列重复时,php数组值为最后一个,最近发现部分值竟然跟数组得到的结果不一样,原来有重复列的问题

4.大小写敏感问题。在本机测试系统时,没问题,但放到服务器上,始终是不行。原来将一个表名写成了大写,结果在windows下大小不敏感,而服务器是linux系统,大小写敏感,所有会出现无法运行的情况。

总结:先画ER图,时序图,再直接测试复杂的sql语句,最后写php代码,应该会好点

5.int型数据突然变成21亿,溢出。

原来是int=int+unsigned int时,结果(负数)会自动转成unsigned int(此时溢出),然后围成了int,

mysql参考手册关于操作符的说明:10.5.1 If one of the arguments is an unsigned integer, and the other argument is also an integer, the result is an unsigned integer.

6.mysql启动时出现1067错误。解决:你已经运行MYSQLD的进程 ,KILL他就OK了

7.用phpmyadmin导入mysql.sql文件时为1.2M时运行超时,结果我在EMS for mysql运行了1秒钟就解决啦。

欧洲字符时有些乱码。可以用dos命令:
D:/xampp/mysql/bin>mysql -uroot -p --default-character-set=utf8 dbname < F:/4_11.sql,或者用editplus->另存为,在Encoding下拉列表中选择western European也可以不用指定字符。

原创粉丝点击