数据库迁移技术记录(二)--max函数,max_allowed_packet参数

数据库迁移数据处理

使用Max函数:

max函数对不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符后在每个字段中加MAX();
DATALENGTH ( expression )
返回类型 int
注释 DATALENGTH 对 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型特别有用,因为这些数据类型可以存储可变长度数据。
NULL 的 DATALENGTH 的结果是 NULL。

使用DataLength函数查询大字段

如:select max(DATALENGTH(field)) from table

查询所有表结构并且进行输出truncate语句

	select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where  table_schema in('LearningGenieDb')

当数据库有外键时不可以进行truncate语句

解决方式:设置数据库是否检查外键:外键置为1是是检查外键 。0时是不检查外键
SET foreign_key_checks=1;

Mysql大数据量插入的错误:

Packet for query is too large (2048 > 1024). You can change this value on the server by setting the max_allowed_packet’ variable.;
解决方式:
查询最大允许的数据量大的插入和更新会被max_allowed_packet 参数:
show VARIABLES like ‘%max_allowed_packet%’;
MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),
通过命令行进行:两种方式,当1.无效时使用2.
1.set global max_allowed_packet = 21024102410
2.set @@max_allowed_packet=5
1024*1024
然后重启mysql服务。

猜你喜欢

转载自blog.csdn.net/qq_37256896/article/details/106157600
今日推荐