MySQL错误信息记录

时间:2024-03-22 17:01:14

考虑到MySQL是一门玄学,难免有些看不见的坑要踩,于是开这篇博文,以此来记录学习及以后使用过程中踩过的Error,如果你也想加入欢迎留言参加

ERROR 1366 (HY000): Incorrect integer value: ” for column ‘name’ at row 1

一般都是MySQL中sql语句模式造成的,可以使用set sql_mode=’ansi’;将其设置为非严格模式(严格模式为strict_trans_tables)

MySQL语言模式如下:

MySQL错误信息记录

MySQL错误信息记录


ERROR 1061 (42000): Duplicate key name ‘name_unique’

一般是设置了多个唯一性约束造成的,因为表中只能存在一个唯一性约束,故建议检查表结构desc 表名;

delete from tablename:清空一个表内容,但不清空表结构,该表格仍然存在,而且表格中列的信息不会改变
drop table tablename:不但删除表内容,而且使用drop table命令则会将整个数据库表格的所有信息全部删除,但不会修改auto_increment。
truncate tablename :删除数据行,但保留表结构,会重设auto_increment为1。

修改表结构

# 删除字段
alter table 表名 drop 字段名;

# 添加新字段
alter table 表名 add 数据类型 [约束条件][first|after 旧字段名];

# 修改字段名
alter table 表名 change 旧字段名 新字段名 数据类型;

# 修改字段名中的数据类型
alter table 表名 modify 字段名 数据类型;
或者
alter table 表名 change 字段名 字段名 数据类型;

# 添加约束条件
alter table 表名 add constraint 约束名 约束类型(字段名);

# 删除约束条件
alter table 表名 drop [primary key|foreign key 约束名]

# 修改表的其他选项
alter table 表名 engine=新的存储引擎类型
alter table 表名 default charset=新的字符集
alter table 表名 auto_increment=新的初始值
alter table 表名 pack_keys=新的压缩类型(该项仅对存储引擎为MyISAM有效)

# 修改表名
rename table 旧表名 to 新表名
或者
alter table 旧表名 rename 新表名

# 删除表名
drop table 表名

# 创建索引
create [unique|fulltext] index 索引名 on 表名 (字段名[(长度)][asc|desc]);
或者
alter table 表名 add [unique|fulltext] index 索引名 (字段名[(长度)][asc|desc]);

# 删除索引
drop index 索引名 on 表名;


AscII ‘\0’ 为NUL可以与数值进行运算,也可与字符串拼接当作空字符串,与NULL有很大的不同。

关键字like 支持模糊查询,_匹配任意单个字符,%匹配任意多个字符。

ERROR 1223 (HY000): Can’t execute the query because you have a conflicting read lock

一般是执行了flush tables with read lock;进行备份的操作,建议,执行解锁操作:unlock tables;

MySQL错误信息记录