mysql循环结果集
1、while 循环是有条件的循环控制语句。满足条件后,再执行循环体中的SQL语句。具体语法为://先判定条件,如果条件为true,则执行逻辑,否则,不执行逻辑WHILE 条件 DOSQL逻辑...E...
2024.11.15如果在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足要求需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改。字符集的修改不能直接通过“alter database character set ***”或者“alter table tablename character set ***”命令进行,这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。已有记录的字符集调整,需要先将数据导出,经过适当的调整重新导入后才可完成。 以下模拟的是将 latin1 字符集的数据库修改成 GBK 字符集的数据库的过程。
(1)导出表结构:
mysqldump -uroot -p --default-character-set=gbk -d databasename> createtab.sql其中--default-character-set=gbk 表示设置以什么字符集连接,-d 表示只导出表结构,
不导出数据。
(2)手工修改 createtab.sql 中表结构定义中的字符集为新的字符集。
(3)确保记录不再更新,导出所有记录。
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename> data.sql--quick:该选项用于转储大的表。它强制 mysqldump 从服务器一次一行地检索表中的行而不是检索所有行,并在输出前将它缓存到内存中。--extended-insert:使用包括几个 VALUES 列表的多行 insert 语法。这样使转储文件更小,重载文件时可以加速插入。--no-create-info:不写重新创建每个转储表的 CREATE TABLE 语句。--default-character-set=latin1:按照原有的字符集导出所有数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码。(4)打开 data.sql,将 SET NAMES latin1 修改成 SET NAMES gbk。
(5)使用新的字符集创建新的数据库。
create database databasename default charset gbk;(6)创建表,执行 createtab.sql。
mysql -uroot -p databasename < createtab.sql(7)导入数据,执行 data.sql。
mysql -uroot -p databasename < data.sql注意:选择目标字符集的时候,要注意最好是源字符集的超级,或者确定比源字符集的字库更大,否则如果目标字符集的字库小于源字符集的字库,那么目标字符集中不支持的字符倒入后会变成乱码,丢失一部分数据。例如,GBK 字符集的字库大于 GB2312 字符集,那么 GBK 字符集的数据,如果导入 GB2312 数据库中,就会丢失 GB2312 中不支持的那部分汉字的数据。
搜索微信公众号:TestingStudio霍格沃兹的干货都很硬核
1、while 循环是有条件的循环控制语句。满足条件后,再执行循环体中的SQL语句。具体语法为://先判定条件,如果条件为true,则执行逻辑,否则,不执行逻辑WHILE 条件 DOSQL逻辑...E...
2024.11.15mysql中有一个字段,存储文件路径,原来存储路径发生了变化,如何修改呢?把‘d:\alantop_dir\Alantop_Tool\Release\Tools\‘ 修改为 ‘D:\alantop_d...
2024.11.15概述前段时间参考网上教程用脚本批量修改了数据库的字符集,过了一天后业务反馈某个功能用不了,检查发现数据库字符类型的字段的默认值和说明全部为空,用实验测试了一下果然脚本存在一些bug,后续因此加班了一整...
2024.11.12欢迎来到MySQL实战第17篇,修炼500篇成为MySQL高手!1.修改字段类型、字段属性alter table 表名 modify 字段名称 字段类型【字段属性】【first|after 字段名称】...
2024.11.151、从左开始截取字符串# 语法select LEFT(str,len)str:被截取的字符串len:截取长度# 示例select LEFT(‘TF-8220210412003-1‘, 10)# 结果为...
2024.11.12