学习
实践
活动
专区
工具
TVP
写文章

修改MySQL varchar类型字段的排序规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段的排序规则,在MySQL中叫collation,常常和编码CHARACTER一起出现的。 (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=',主要是因为迁移数据库时候没有把collation规则及时修改过来 网上搜到的解决办法,都提到了修改数据表级别collation排序规则。 由于需要修改的字段太多了,手工修改肯定是费时费力的。自然也想到了用脚本的方式批量修改,但是发现这种通过查找MySQL信息表、过滤、拼接生成批量修改的语句太好用了,而且还能做到针对varchar类型。 需要注意的是,如果要修改的字段存在外键关系,那就要小心处理,删除外键,修改collation后再把外键关系加回来。

1.6K30

MySQL 批量修改所有表字段字符集及排序规则

报错数据库排列规则不是推荐的,但其实并没有修改数据库排列规则,之前是可以用的,这都不重要,那就改吧 先查看一番数据库的排序规则 ? 确实不是utf8_bin,接着看下该库里面表中字段的排序规则 ? 同样是utf8_general_ci,没办法,只能改了 数据库里面还有其他库在用,所以没办法直接全局修改数据库的排序规则,只能单独修改这个库的所有表的所有字段的排序规则 查看了下这个库,有300多张表 这要一个一个改,今晚估计回不了家了,单独修改库和修改表的字符集都比较简单,直接通过alter修改就可以,不同的是修改表的时候,还需要修改每个字段的字符集,所以需要用CONVERT TO来修改,因为表名可以从 information_schema库中查到,所以想着,可以用concat拼接把表明拿到,可以获取到所有的alter命令,不需要自己再去一个一个改 具体步骤如下: 第一步,修改数据库编码及字符集 alter 导入完成后,再去查看原来表的排序规则 ? 修改完毕,下班回家

1.8K20
  • 广告
    关闭

    云服务器应用教程

    手把手教您从零开始搭建网站/Minecraft游戏服务器/图床/网盘、部署应用、开发测试、GPU渲染训练等,畅享云端新生活。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    堡垒机定期修改服务器密码 Linux系统怎么修改

    比如堡垒机定期修改服务器密码就是可以设置的,那么具体怎么操作呢? 堡垒机定期修改服务器密码 在使用堡垒机定期修改服务器密码的时候,可以这样操作。 首先是设置一台服务器密码修改的频率,这个可以自定义是按月份修改还是按星期修改,还是按照自定义天数修改?设定了修改频率之后,还应该对服务器上面的账户和密码进行操作。 用户应该在服务器上面勾选自动修改密码,这样就可以根据堡垒机的频率设定而修改密码了。 Linux系统怎么修改? 使用堡垒机定期修改服务器密码的过程当中,如果是Unix系统和Linux系统,更改方式稍微有一点差别。如果是给Unix系统和Linux系统进行自动密码修改的话,需要有它们的 root权限。 以上就是堡垒机定期修改服务器密码的相关内容。除了自动改密功能堡垒机还有许多的特色功能,用户在使用过程当中会慢慢发现的。

    53930

    3389服务器远程端口修改怎么操作

    今天在服务器端的攻击防护日志中看到3389端口被攻击了,查了一下3389是服务器远程端口,是服务器远程连接的默认端口,很多黑客都针对这个端口进行扫描,那如果修改远程连接的端口呢? 这个远程连接端口可以直接从注册表进行修改修改两个地方。 ,选择到十进制,你就会看到现在您使用的端口号(默认值是3389),然后修改为您想要使用的端口就可以了,如43890,但是不要选择一些我们常用的端口或者您的软件需要使用的端口,否则会出现端口冲突。 tcp],也是找到PortNumber,同上面一样修改一下端口值43890就可以了。 注意:修改完毕后,重启服务器,才会生效   服务器远程端口修改怎么用?用户名后面加上刚刚修改具体的端口:43890,例如188.188.85.52:43890,密码不变,登录就可以了

    13.1K304

    软件版本号命名规则参考标准_怎么修改app版本号名称

    <阶段版本号>, 1.1.0 3、版本号修改规则 主版本号(1):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。 此版本号由项目决定是否修改。 阶段版本号(1):一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。 此版本号由项目经理决定是否修改。 日期版本号(161109):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。 希腊字母版本号(beta)::此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。 4、版本号的阶段标识 阶段名称 阶段标识 需求控制 a 设计阶段 b 编码阶段 c 单元测试 d 单元测试修改 e 集成测试 f 集成测试修改 g 系统测试 h 系统测试修改 i 验收测试 j 验收测试修改

    31430

    服务器硬盘存储路径怎么修改 上传到云的方式

    如果在自己的电脑上操作,相信很多人是没有问题的,只要在下载的时候选择更改,或者是利用磁盘管理器等方式就能改了,但云服务器硬盘存储路径怎么修改就没有那么容易了。 云服务器硬盘存储路径怎么修改 当下企业应用云服务器的现象还是比较普遍的,而且以后也会有更多的用户加入这个行列,所以云服务器硬盘存储路径怎么修改在办公过程中也算是一个必备的技巧,有利于工作的开展和进行。 上传到云的方式 云服务器硬盘存储路径怎么修改其实也并不算困难,而在远程桌面连接的情况下,还可以选择把文件上传到云服务器,保存在云硬盘之中。 如果没有自带的传输工具,那么就要分别在本地的主机和云服务器上都安装相应的工具,随后就可以将需要传输的文件上传,不过最好不要传输太大的文件,否则万一发生中断的现象,可能会导致无法断点续传,不论是怎么传输, 以上就是关于云服务器硬盘存储路径怎么修改的,重要的数据资料保存在哪里是一定要了如指掌的,所以可以通过修改路径来实现文件的存储和管理。

    43140

    (一招搞定)tomcat与服务器时间相差8小时,修改catalina.sh后还不行怎么办?

    在网上查询尝试了一些办法如:修改tomcat文件下的bin/catalina 文件中set JAVA_OPTS= -Duser.timezone=GMT+08 仍然不行↑↑↑ 后来查到有些特殊情况下是不允许修改代码的 这个时候我们就要从JVM入手了,一个tomcat进程对应一个JVM,我们可以对这个JVM设置一些启动参数,带着这个疑问我们找到了解决方法 修改tomcat/bin/setclasspath.sh(windows 下修改.bat)文件 #windows下编辑tomcat/bin/setclasspath.bat(在所有代码之前添加) set JAVA_OPTS="-Duser.timezone=GMT" #linux 编辑tomcat/bin/setclasspath.sh(在所有代码之前添加) export JAVA_OPTS="-Duser.timezone=GMT" #如果设置了随机启动脚本要修改随机启动脚本 ,请修改 vim /etc/init.d/tomcat export JAVA_OPTS="-Duser.timezone=GMT+8:00" 或 export JAVA_OPTS="-Duser.timezone

    63410

    Mysql字符集(3)--mysql从入门到精通(四)

    Mysql字符集(2)--mysql从入门到精通(三) 如果你的select * from table_A where name = ‘我的’;返回的结果显示编码报错怎么办呢? 字节串在服务器里面相互解码编码不是很影响性能吗,答案是肯定的,所以mysql给了一个sql,吧这三个系统参数一起修改字符集:set names '字符集';也可以单个修改,sql如下。 ,服务器用character_Set_client解析。 比较规则的应用: gbk_chinese_ci是不区分大小写排序的,比如order by 排序字段,返回的结果可能是’a’,’A’,’b’,’B’。 当我们用修改当前字段列的字符集为gbk_bin,order by排序之后,可以返回’A’,’B’,’a’,’b’。所以当我们排序时候,没有我们想要的结果,也可以考虑是否是比较规则的问题。

    12530

    如何接入微信公众平台开发

    ---- 接入概述 接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置(不做描述) 验证服务器地址的有效性 依据接口文档实现业务逻辑(不做描述) 校验规则: 将token、timestamp 、nonce三个参数进行字典序排序 将三个参数字符串拼接成一个字符串进行sha1加密 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 详细文档链接,请参考:https://developers.weixin.qq.com /doc/offiaccount/Basic_Information/Access_Overview.html 校验规则很简单,照着规则来就行了。 项目都是本地的,服务器URL需要外网80端口,所以用了natapp或者花生壳,具体怎么使用百度一下就可以了。 写了两个版本的java、nodejs,问题大多数都是java同学。 java spring boot示例代码 修改application.yml server.port=80 nodejs egg示例代码 修改config.default.js config.cluster

    38020

    Mysql字符集-Mysql进阶(一)

    我们都知道表数据是一行一行的,但这只是显示了逻辑上的概念,物理内存上如何存储的,怎么写入的,怎么查询的,都是存储引擎需要负责的事,mysql为了实现不同的功能,提供了各式各样的存储引擎。 一个字符集可能对应若干比较规则,utf8-general-ci是常见的比较规则,忽略大小写,utf8默认就是这个。Utf8-general-bin(binary)则是二进制的比较规则,不区分大小写的。 (所以在排序的时候,如果排序没有区分大小写或者有异常,可以看看他的比较级是什么) Mysql字符集的比较规则和字符集分为四个模块:服务器级别、数据库级别、表级别、列级别。 设置的时候通过character set 和collate来设置,查看的时候通过character_Set_database和collation_database,,如果数据库级别没有指定字符集和比较级,则继承服务器的字符集和比较级所在规则 这上面有一个共同的特点,当修改了字符集,则自动变成当前字符集对应的比较级,如果修改了比较级,则自动变成对应的字符集。

    9320

    MySQL数据表字符集

    字符集是一套符号和编码,校验规则是字符集内用来比较字符的一些规则,也就是字符集的排序规则。MySQL可以使用多种字符集和检验规则来组织字符。 MySQL服务器支持多种字符集,在同一台服务器、同一个数据库甚至是同一个表的不同字段都可以使用不同的字符集。 每种字符集都可能有多种校验规则,并且都有一个默认的校验规则。 show character set; 查看字符集的校验规则: show collation; 然后就会哒哒哒地出一堆东西出来,就是你服务器支持的字符集校验规则了。 怎么查看当前数据库的字符集呢? 怎么查看当前数据库的校验规则呢? utf8 collate utf8_romanian_ci; 修改已经存在的数据库的校验规则: alter database lyxt collate utf8_romanian_ci; 在创建数据表的时候

    16450

    从零开始学Mysql - 字符集和编码(下)

    like 'utf_%'; 字符集和比较规则的级别分为四种: 服务器级别:可以通过配置文件进行设置,但是启动之后无法修改服务器级别的字符集或者比较规则。 数据库级别 查看字符集 查看比较规则 系统变量 修改/创建方式 案例 服务器级别 show variables like 'character_set_server'; SHOW VARIABLES LIKE 'collation_server' character_set_server :当前服务器比较规则collation_server:当前服务器比较规则 修改配置文件 [server] character_set_server (gbk_chinese_ci,IMPLICIT) and (ascii_general_ci,COERCIBLE) for operation '=' 将上面的内容实验完成之后,这时候我们会想要怎么把字符集修改回来 而对于比较规则细节比较少,只要记住比较规则会影响内容的排序即可,如果某一次查询的排序结果和预期不符合,那么这时候可以从排序规则入手看一下是否可以通过排序规则调整可以更好的符合预期结果。

    17520

    XenDesktop 5.6 如何连接数据库

    首先排查问题: 1、先查看DDC和数据库之前能否ping通; 2、DDC服务器和数据库服务器防火墙是否关闭; 3、查看数据库服务器有没有开TCP/IP协议;(SQL 配置管理器设置) 4、查看数据库排序 (新建数据库---选项---排序规则) 其实XenApp连接数据库比较简单,只要在新建数据库,记住数据库服务器名称和新建的数据库名字。如何Windows验证测试一般都可以通过。 手动新建的数据库,你可以在“选项”里修改排序规则”为“Chinese_RPC_CI_AI_KS”。 上面红色叉提示“数据库合并序列必须不区分大小写,但区分重音和假名类型”。这个就是排序的问题。 关于排序问题我顺便提一下。我们手动新建的数据库排序默认是“服务器默认选项”。可以手动修改成“Chinese_RPC_CI_AI_KS”。 通过数据库脚本生成的排序是“Chinese_RPC_CI_AI_KS”。就不用修改。 测试结果成功。

    58920

    从零开始学Mysql - 字符集和编码(下)

    like 'utf_%'; 字符集和比较规则的级别分为四种: 服务器级别:可以通过配置文件进行设置,但是启动之后无法修改服务器级别的字符集或者比较规则。 数据库级别 查看字符集 查看比较规则 系统变量 修改/创建方式 案例 服务器级别 show variables like 'character_set_server'; SHOW VARIABLES LIKE 'collation_server' character_set_server:当前服务器比较规则collation_server:当前服务器比较规则 修改配置文件[server] character_set_server (gbk_chinese_ci,IMPLICIT) and (ascii_general_ci,COERCIBLE) for operation '=' 将上面的内容实验完成之后,这时候我们会想要怎么把字符集修改回来 而对于比较规则细节比较少,只要记住比较规则会影响内容的排序即可,如果某一次查询的排序结果和预期不符合,那么这时候可以从排序规则入手看一下是否可以通过排序规则调整可以更好的符合预期结果。

    16020

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券