第08期:有关 MySQL 字符集的注意事项

SpringBoot实战教程(8)| 整合mybatis-plus MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 mybatis-plus官网地址:https://baomidou.com/ 目录 一、初始化springboot项目 二、引入依赖文件 三、编写配置文件 四、编写测试案例 User.java UserMapper.java UserService.java ... 阅读详情

本文关键字:字符集、建库建表

一、数据库和字符集

1、建库时指定

​创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 ytt_new2 后,对应的系统参数也被修改。

mysql> create database ytt_new2 default character set latin1 collate latin1_bin;
Query OK, 1 row affected (0.03 sec)

mysql> use ytt_new2
Database changed

mysql> select @@character_set_database,  @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| latin1                   | latin1_bin           |
+--------------------------+----------------------+
1 row in set (0.00 sec)

2、改库时指定

​改库类似建库,效果一样。但需要注意的一点是,修改库字符集与排序规则后,之前基于这个库创建的各种对象,还是沿用老的字符集与排序规则。举个例子,对存储过程的影响:

-- 简单写个存储过程
DELIMITER $$

USE `ytt_new2`$$

DROP PROCEDURE IF EXISTS `sp_demo`$$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_demo`(
    IN f1 VARCHAR(10),
    IN f2 VARCHAR(10)
    )
BEGIN
	DECLARE v1 VARCHAR(20);
	SET v1 = CONCAT(f1,f2);
	SELECT v1 AS result;
	END$$

DELIMITER ;

查看这个存储过程的字符集,这里看到排序规则是 latin1_bin,对应的字符集是 latin1,和数据库 ytt_new2 一致。

mysql> show create procedure sp_demo\G
*************************** 1. row ***************************
           Procedure: sp_demo
...
  Database Collation: latin1_bin
1 row in set (0.00 sec)

-- 那接下来改掉数据库的字符集为 UTF8
mysql> alter database ytt_new2 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected, 2 warning (0.02 sec)

mysql> select @@character_set_database,  @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8                     | utf8_general_ci      |
+--------------------------+----------------------+
1 row in set (0.00 sec)

-- 再查看存储过程 sp_demo 的字符集,还是之前的。
mysql> show create procedure sp_demo\G
*************************** 1. row ***************************
           Procedure: sp_demo
...
  Database Collation: latin1_bin
1 row in set (0.00 sec)

-- 此时,调用存储过程,字符集不对,报编码错误。

mysql> call sp_demo('我','你');
ERROR 1366 (HY000): Incorrect string value: '\xE6\x88\x91' for column 'f1' at row 1

-- 改变存储过程字符集只能删除重建,重新执行下之前的存储过程代码,再次调用,结果就正常了。

mysql> call sp_demo('我','你');
+--------+
| result |
+--------+
| 我你   |
+--------+
1 row in set (0.00 sec)

Query OK, 0 rows affected, 2 warnings (0.01 sec)

3、参数的指定

参数 character_set_database 和 collation_database 如果没有指定,默认继承服务器端对应参数 character_set_server 和 collation_server。

mysql> select @@character_set_server charset,  @@collation_server collation 
    -> union all
    -> select @@character_set_database,  @@collation_database;
+---------+--------------------+
| charset | collation          |
+---------+--------------------+
| utf8mb4 | utf8mb4_0900_ai_ci |
| utf8mb4 | utf8mb4_0900_ai_ci |
+---------+--------------------+
2 rows in set (0.00 sec)

那这种情况下,建库或者改库时不指定具体的字符集和排序规则,默认继承这两个参数:

mysql> show create database ytt_new3\G
*************************** 1. row ***************************
       Database: ytt_new3
Create Database: CREATE DATABASE `ytt_new3` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
1 row in set (0.00 sec)

二、表和字符集

1、建表时指定(显式设置)

同建库一样,显式指定字符集和排序规则,优先级最高,以指定的值为准。

-- 创建新库 ytt_new4
mysql> create database ytt_new4;
Query OK, 1 row affected (0.02 sec)

mysql> use ytt_new4;
Database changed

-- 创建新表 t1, 字符集 latin1, 排序规则 latin1_bin
mysql> create table t1(a1 int) charset latin1 collate latin1_bin;
Query OK, 0 rows affected (0.05 sec)

mysql> show create table t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `a1` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin
1 row in set (0.00 sec)

3、继承设置(隐式转换)

默认继承所属数据库级别的字符集和排序规则。这里需要注意的是所属数据库,不是当前数据库。

-- 当前数据库 ytt_new4.
mysql> use ytt_new4;
Database changed

-- 表 t2 属于当前数据库 ytt_new4
mysql> create table t2(a1 int);
Query OK, 0 rows affected (0.05 sec)

-- 查看表 t2 字符集和排序规则
mysql> show create table t2\G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `a1` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

-- 创建表 t3,不过属于数据库 ytt_new5
mysql> create database ytt_new5 character set gbk;
Query OK, 1 row affected (0.03 sec)

mysql> create table ytt_new5.t3 (id int);
Query OK, 0 rows affected (0.04 sec)

-- 查看表 t3 字符集,和数据库 ytt_new5 一致
mysql> show create table ytt_new5.t3\G
*************************** 1. row ***************************
       Table: t3
Create Table: CREATE TABLE `t3` (
  `id` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.01 sec)

3、视图

视图其实就是虚拟的表,所以视图的字符集也划在表这块简单介绍下。视图的字符集完全依赖客户端的字符集设置。比如:

mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

-- 此时视图 v_t3 编码为 gbk
mysql> create view v_t3 as select * from t3;
Query OK, 0 rows affected (0.01 sec)

mysql> set names gb18030;
Query OK, 0 rows affected (0.00 sec)

-- 此时视图 v_t31 编码为 gb18030
mysql> create view v_t3_1 as select * from t3;
Query OK, 0 rows affected (0.01 sec)

-- 查看这两个视图的编码
mysql> show create view v_t3\G
*************************** 1. row ***************************
                View: v_t3
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_t3` AS select `t3`.`a1` AS `a1` from `t3`
character_set_client: gbk
collation_connection: gbk_chinese_ci
1 row in set (0.01 sec)

mysql> show create view v_t3_1\G
*************************** 1. row ***************************
                View: v_t3_1
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_t3_1` AS select `t3`.`a1` AS `a1` from `t3`
character_set_client: gb18030
collation_connection: gb18030_chinese_ci
1 row in set (0.00 sec)

4、触发器

触发器基于表,所以触发器也归类到表这块。其实触发器的编码规则和视图一样。也是依赖客户端的设定。比如一个简单的触发器:

-- 客户端编码为 utf8
mysql> set names utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)

-- 触发器的编码也继承同样的客户端编码
mysql> create trigger tr_after_insert_t3 after insert on t3 for each row  insert into t4 values(new.a1);
Query OK, 0 rows affected (0.01 sec)

mysql> show create trigger tr_after_insert_t3\G
*************************** 1. row ***************************
               Trigger: tr_after_insert_t3
              sql_mode: 
SQL Original Statement: CREATE DEFINER=`root`@`localhost` TRIGGER `tr_after_insert_t3` AFTER INSERT ON `t3` FOR EACH ROW insert into t4 values(new.a1)
  character_set_client: utf8
  collation_connection: utf8_general_ci
    Database Collation: utf8mb4_0900_ai_ci
               Created: 2020-03-09 11:32:23.94
1 row in set (0.00 sec)

三、列和字符集

1、显式指定

同数据库和表一样,列也可以显式指定特定的字符集和排序规则。虽说是可以这样做,但是非常不推荐,最主要原因是每个列字符集不一样,导致写入和检索都得额外的编写 SQL。

-- 创建新库 ytt_new6
mysql> create database ytt_new6 character set latin1;
Query OK, 1 row affected (0.02 sec)

mysql> use ytt_new6;
Database changed

-- 在 ytt_new6 下创建表 t1,拥有字段 a1,a2,a3 分别给定不同的字符集和排序规则

mysql> create table t1( a1 char(10) charset latin1 collate latin1_bin,
                       a2 char(10) charset gbk collate gbk_bin,
                       a3 char(10) charset utf8mb4 collate utf8mb4_bin);
Query OK, 0 rows affected (0.05 sec)

mysql> show create table t1\G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `a1` char(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
  `a2` char(10) CHARACTER SET gbk COLLATE gbk_bin DEFAULT NULL,
  `a3` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

那接下来简单插入一条记录,需要为每列添加 introduer,否则报错。

-- 没有显式指定每列字符集,报错
mysql> insert into t1 values ('character ','字符集合','字符集合');
ERROR 1366 (HY000): Incorrect string value: '\xAC\xA6\xE9\x9B\x86\xE5...' for column 'a2' at row 1

-- 为每列显式添加 Introducer
mysql> insert into t1 values (_latin1 'character ',_gbk '字符集合',_utf8mb4 '字符集合');
Query OK, 1 row affected (0.01 sec)

查询出来最麻烦,因为每次查询出来的结果只能有一个字符集,字符集兼容的列可以一起检索;不兼容的列得分开检索。举个例子,我想简单的 SELECT * 拿出所有记录,结果发现有一个字段据显示不正常。

mysql> select * from t1;
+-----------+------------------+--------------+
| a1        | a2               | a3           |
+-----------+------------------+--------------+
| character | 瀛楃?闆嗗悎      | 字符集合     |
+-----------+------------------+--------------+
1 row in set (0.00 sec)

所以针对这种情形,该怎么检索数据呢?必须得对单个字段检索或者是对兼容的列一起检索。

-- 以字符集 GBK 输出列 a1 a2,由于 a1 是保存的是字母,所以兼容输出。
mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> select a1,a2 from t1;
+-----------+--------------+
| a1        | a2           |
+-----------+--------------+
| character | 字符集合     |
+-----------+--------------+
1 row in set (0.00 sec)

-- 以字符集utf8mb4和gbk不兼容,得单独输出列a3。或者单独输出a2.
mysql> set names utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql> select a3 from t1;
+--------------+
| a3           |
+--------------+
| 字符集合     |
+--------------+
1 row in set (0.00 sec)

2、隐式转换

这种方式,是最推荐的,也是最长的方式,所有列继承表的字符集,不单独指定。

-- 建表 t2,指定字符集为 gbk.
mysql> create table t2(a1 varchar(10),a2 varchar(10)) charset gbk;
Query OK, 0 rows affected (0.05 sec)

mysql> show create table t2\G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `a1` varchar(10) DEFAULT NULL,
  `a2` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.01 sec)

但是这里有一个需要注意的点,如果此时对表进行字符集变更,那表的列依然保留原来的字符集。例如:

mysql> alter table t2 charset utf8;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> show create table t2\G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `a1` varchar(10) CHARACTER SET gbk DEFAULT NULL,
  `a2` varchar(10) CHARACTER SET gbk DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

如果想把表里字段的字符集也改了,应该用以下语句更改表字符集。

mysql> alter table t2 convert to character set utf8;
![杨涛涛自媒体.png](https://upload-images.jianshu.io/upload_images/6561209-16ba37690f38c069.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Query OK, 0 rows affected, 1 warning (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> show create table t2\G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `a1` varchar(10) DEFAULT NULL,
  `a2` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

那到这儿,我们已经了解了字符集对数据库,表以及列的使用以及相关影响。大致总结下,这篇我详细介绍了字符集在 MySQL 数据库,表以及列相关对象处理时的注意事项,并且举例说明。希望对大家有帮助。


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

Windows下CMake编译VTK 选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。 阅读详情

相关推荐

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8156

MySQL中ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci的作用

CREATE TABLE `permission` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_id` int(11) NULL DEFAULT NULL COMMENT '角色ID', `permission` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限', `add_time` datetime(0)

qq_47768542的博客 9949

【STM32开源实战】基于STM32的智能输液监控系统设计与实现

本文详细介绍了基于STM32F103C8T6主控芯片的智能输液监控系统设计与实现。该系统通过光学液位传感器、温度传感器和红外滴速检测模块实时监测输液状态,利用步进电机自动调节滴速,并通过蓝牙实现数据远程传输,为医院提供了一套低成本、高可靠性的智能输液解决方案。

h6i7j8的博客 761

mysql explain 参数_mysql explain参数解析

建表语句-- ------------------------------ Records of departments-- ----------------------------INSERT INTO `departments` VALUES (10, 'Adm', 200, 1700);INSERT INTO `departments` VALUES (20, 'Mar', 201, 180...

weixin_28856787的博客 1654

从Chimera到ChimeraX:科研绘图升级指南,让你的论文配图更专业

本文详细介绍了从UCSF Chimera升级到ChimeraX的科研绘图指南,帮助研究者提升论文配图质量。ChimeraX在渲染引擎、大分子处理能力和动画功能上具有显著优势,特别适合生命科学和结构生物学领域。文章涵盖材质设置、专业配色、工作流程和期刊适配等核心技巧,助力产出出版级分子可视化图像。

weixin_33670786的博客 928

数据仓库从明细到汇总:DWD与DWS层建模实战指南

DWS层的“主题”是指业务分析的核心场景,通常分为“用户主题、商品主题、订单主题、营销主题”等。主题的定义需紧密结合业务需求,避免“为了汇总而汇总”。例如,电商平台的核心业务需求包括“用户活跃度分析”“商品销售情况分析”“订单转化分析”,对应的DWS层主题即可定义为“用户主题汇总表”“商品主题汇总表”“订单主题汇总表”。主题定义时需注意“粒度适中”——汇总粒度既不能过细(否则与DWD层重复,失去汇总意义),也不能过粗(否则无法满足细分分析需求)。

2401_83088008的博客 644

mysql 外键

转自:https://www.cnblogs.com/programmer-tlh/p/5782451.html https://www.cnblogs.com/bhlsheji/p/5332910.html 外键定义: [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name...

DXT的博客 375

【纯干货分享】常用高速接口眼图模板合集

文章汇集了常见的高速接口的信号眼图测试模板技术要求,比如,LPDDR5/4、PCIe 5.0/4.0、USB、MIPI等等,方便工程师快速进行查询和使用。

一只豌豆象的博客 3116

导入数据库时报错1067 – Invalid default value for ‘字段名’ 时区问题(当mysql5.7时新的报错解决方案)

导入数据库时报错1067 – Invalid default value for ‘字段名’ 最近把mysql升级到5.7了,wordpress导数据报错 Invalid default value for 'comment_date' 原因出在类似这样的语句 DROP TABLE IF EXISTS `wp_comments`; CREATE TABLE `wp_comments` ...

大海技术博客 1万+

OpenClaw插件开发指南:扩展AI智能体的无限可能

OpenClaw插件开发指南介绍了如何扩展AI智能体的功能。该插件系统支持多种类型(功能、集成、工具、界面、工作流插件),具有模块化、低耦合等优势。开发环境需要安装SDK和工具包,通过plugin.json配置插件信息,主文件实现核心功能。API提供智能体管理、任务执行等接口,示例演示了文本处理插件的创建流程。开发者可基于此框架灵活扩展OpenClaw的能力。

一键难忘的博客 561

静态时序分析—set_sense

set_sense 常见用法

m0_61544122的博客 1万+

字符集_第08期:有关 MySQL 字符集的注意事项

本文关键字:字符集、建库建表一、数据库和字符集1. 建库时指定创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 y...

weixin_34942564的博客 110

【数字IC基础】DFT(Design For Test)可测性设计

【数字IC基础】DFT(Design For Test)可测性设计

努力,加油每一天鸭~ 3465

mysql 不排序_第08期:有关 MySQL 字符集的注意事项

本文关键字:字符集、建库建表一、数据库和字符集1. 建库时指定创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到...

weixin_39743357的博客 102

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mysql concat 不同字符集_第08期:有关 MySQL 字符集的注意事项

本文关键字:字符集、建库建表一、数据库和字符集1. 建库时指定创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 y...

weixin_28940939的博客 241

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mysql 触发器字符集_第08期:有关 MySQL 字符集的注意事项

本文关键字:字符集、建库建表一、数据库和字符集1、建库时指定​创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 y...

weixin_36121354的博客 237

ubuntu数据库默认字符集_第08期:有关 MySQL 字符集的注意事项

本文关键字:字符集、建库建表一、数据库和字符集1. 建库时指定创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 y...

weixin_39569894的博客 110

MySQL的字符集配置

创建表 插入数据 查看字符集配置 MySQL8的从查询数据库字符集变量:MySQL5.7的从查询数据库字符集变量: MySQL8: 修改之后的5.7:

qq_37666344的博客 1897

MySQL数据库修改字符集排序规则

MySQL数据库修改字符集排序规则

m0_56186270的博客 665

不同版本mysql备份_MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表的导出导入;恢复任意日志点)...

Re: MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表的导出导入;恢复任意日志点)# 数据备份与恢复概念数据备份是数据库管理员非常重要的工作之一。系统意外崩溃或者硬件的损坏都可能导致数据库的丢失,因此MySQL管理员应该定期地备份数据库,使得在意外情况发生时,尽可能减少损失。# 本章包含主要内容:1) 数据库的备份和恢复:系统意外崩溃或硬件的损坏导致数据库丢失或故障,需要恢...

weixin_42329480的博客 627

图文详解Linux基础经典教程(08)——CentOS安装MySQL数据库

之前,我们在CentOS中安装了JDK、Tomcat;接下来,我们在CentOS中采用YUM的方式安装MySQL数据库。

谷哥的小弟 1450

《叶问》第18期

关 于 叶 问《叶问》是知数堂新设计的互动栏目,不定期给大家提供技术知识小贴士,形式不限,或提问、或讨论均可,并在当天发布答案,让大家轻轻松松利用碎片时间就可以学到最实用...

老叶茶馆 6352

MySQL的CONCAT函数介绍

本文系统分析MySQL中的CONCAT字符串拼接函数,从基础语法、与CONCAT_WS的本质区别、典型应用场景到高级优化策略。重点探讨CONCAT的空值处理机制,提出防御性拼接方案(如COALESCE/IFNULL)和CONCAT_WS的智能跳过NULL值特性。针对性能优化,给出减少函数调用、索引配置、临时表处理等实践方案,并指出字符集一致性等潜在问题。文章还涵盖GROUP_CONCAT等进阶用法,强调需根据业务场景选择最佳实现方式,兼顾效率与可靠性。全文提供可落地的SQL示例代码,为MySQL字符串操作提

得塔云的博客 1394

mysql not null 语法_[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。...

MySQL的编码方式中,常用的有gb2312MySQL的编码方式的查看,常用三个参数:character_set_client, character_set_connection ,character_set_result.查询goods表的列的编码情况: show full columns from goods;在三个参数一样的情况下,发现goods表中的goods_name的值被截断了,单独插...

weixin_35916106的博客 394
上一篇: 故障分析 | MySQL 优化案例 - select count(*)
下一篇: 新特性解读 | MySQL 8.0 之原子 DDL
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值