`

mysql中varchar字段长度超过限制长度自动截取的问题

阅读更多
mysql手册的说明:
    如果分配给CHARVARCHAR列的值超过列的最大长度,则对值进行裁剪以使其适合。如果被裁掉的字符不是空格,则会产生一条警告。如果裁剪非空格字符,则会造成错误(而不是警告)并通过使用严格SQL模式禁用值的插入。
MySQL服务器模式说明:

MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式。这样每个应用程序可以根据自己的需求来定制服务器的操作模式。

模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL

你可以用--sql-mode="modes"选项启动mysqld设置默认SQL模式。如果你想要重设,该值还可以为空(--sql-mode ="")

你还可以在启动后用SET [SESSION|GLOBAL] sql_mode='modes'语句设置sql_mode变量来更改SQL模式。设置 GLOBAL变量时需要拥有SUPER权限,并且会影响从那时起连接的所有客户端的操作。设置SESSION变量只影响当前的客户端。任何客户端可以随时更改自己的会话 sql_mode值。

Modesis是用逗号()间隔开的一系列不同的模式。你可以用SELECT @@sql_mode语句查询当前的模式。默认值是空(没有设置任何模式)

主要重要sql_mode值为:

·         ANSI

更改语法和行为,使其更符合标准SQL

·         STRICT_TRANS_TABLES

如果不能将给定的值插入到事务表中,则放弃该语句。对于非事务表,如果值出现在单行语句或多行语句的第1行,则放弃该语句。本节后面给出了更详细的描述。

·         TRADITIONAL

Make MySQL的行为象“传统SQL数据库系统。该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,这种方式不是你想要的,因为出现错误前进行的数据更改不会“滚动”,结果是更新“只进行了一部分”。

本手册指“严格模式”,表示至少STRICT _TRANS_TABLESSTRICT _ALL_TABLES被启用的模式。



想飞的鱼 2007-08-29 18:30 发表评论
分享到:
评论

相关推荐

    限制文字长度.rar

    例如,在MySQL中,我们可以在创建表时指定列的类型,如VARCHAR(255)表示该字段最多可存储255个字符。如果插入的数据超过了这个长度,数据库会报错。 在前端开发中,HTML和CSS也提供了处理文字长度的手段。HTML的`...

    MySql超长自动截断实例详解

    小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app_station` ( `WX_APP_ID` varchar(20) NOT NULL, `APP_SECRET...

    MySQL中随机生成固定长度字符串的方法

    本文将详细讲解如何在MySQL中定义并使用一个函数来生成固定长度的随机字符串。 首先,我们创建一个名为`rand_string`的自定义函数。这个函数接受一个整数参数`n`,表示需要生成的字符串长度。函数内部定义了一个...

    MySQL将一个字段中以逗号分隔的取出来形成新的字段实现

    在MySQL数据库中,经常遇到需要处理以逗号分隔的字段值的情况,这些字段通常用于存储多值数据,比如在本例中,`related_shop_ids`字段存储了多个商店ID,用逗号分隔。本篇文章将详细讲解如何将这样的字段拆分成多个...

    Mysql Oracle 数据库开发设计及使用规范

    - 联合索引命名时按创建顺序列出字段名,限制不超过3个字段。 - 索引名称长度不得超过30个字符。 **2.7 包命名** - 包命名根据用途区分: - 功能模块包命名格式为`PKG+_+模块名`。 - 个人功能或数据处理包命名...

    mysql 中如何取得汉字字段的各汉字首字母

    在MySQL数据库中,有时我们需要对包含汉字的字段提取每个汉字的首字母,例如用于拼音排序或创建基于拼音的索引。这个问题可以通过编写一个自定义函数来解决,正如给定的代码片段所示。下面我们将详细讨论这个过程。 ...

    mysql转换到oracle数据库

    - **原因**:由于MySQL与Oracle数据库之间的语法差异较大,一次性导出后直接进行转换可能会导致较多问题。因此,通常会采取先分别导出表结构与数据的方式,再进行转换。 - **操作步骤**:首先仅导出表结构,对其...

    2022年PHP面试题集锦.doc

    varchar 和 char 是 MySQL 数据库中两种常用的字段类型,用于存储字符串数据。varchar 字段类型用于存储可变长度的字符串,而 char 字段类型用于存储固定长度的字符串。varchar 字段类型的查找效率比 char 字段类型...

    限定字数框

    例如,在MySQL中,VARCHAR类型的字段可以指定最大长度,以确保数据库不会因过长的输入而出现问题。 此外,UI设计原则强调了限定字数框的重要性,因为它能帮助用户理解期望的输入形式,减少错误,同时也能优化显示和...

    Mysql通过存储过程分割字符串为数组

    在MySQL中,处理字符串时,有时需要将一个长字符串按照特定的分隔符切割成多个独立的部分,这在处理如CSV格式的数据时尤为常见。本文将深入探讨如何通过存储过程来实现这一功能。 首先,我们要了解MySQL中用于处理...

    MySQL快速指南

    1. **事务(Transaction)**:MySQL的部分存储引擎(如MyISAM)不支持事务处理,这限制了其在需要高一致性的应用中的使用。 2. **存储过程(StoredProcedure)**:早期版本的MySQL不支持存储过程,但在较新版本中已添加...

    Mysql 根据一个表数据更新另一个表的某些字段(sql语句)

    在MySQL数据库管理中,经常需要根据一个表的数据来更新另一个表中的字段,这在数据同步、维护或报表生成等场景中十分常见。本篇文章将详细解释如何使用SQL语句实现这个功能,以及涉及的相关知识点。 首先,我们创建...

    PHP MySQL程序开发中的乱码产生原因及解决方案分析.pdf

    5. **数据库字段类型**:对于存储中文字符的字段,应选择可存储多字节字符的类型,如`VARCHAR`或`TEXT`,并设定其字符集为UTF-8。 6. **字符串操作**:在PHP中处理字符串时,如拼接、截取等,要注意编码的一致性,...

    数据库规范手册

    - 字段名称长度不超过30个字符。 - **视图命名**: - 采用`项目名/模块名+_+VW+_+用途`格式。 - 视图名称长度不超过30个字符。 - **序列命名**:采用`SEQ+_+用途`格式。 - **存储过程/函数命名**: - 采用`PRO+_...

    Mysql中存储UUID去除横线的方法

    在MySQL中,UUID(Universally Unique Identifier)是一种广泛使用的全局唯一标识符,通常表现为36个字符的字符串,包括4段由短横线分隔的16进制数字。例如,`05ba463f-1dab-471f-81c7-58e0b06f35f0`。然而,这种...

    MySQL学习笔记 ADY

    以上是对文件中提及的MySQL学习笔记知识点的详细解释,这些知识点覆盖了MySQL的安装配置、基本概念、数据类型、表操作、索引、视图、触发器、查询、数据操作、运算符、函数以及存储过程和函数等方面,适合初学者学习...

    关于MySQL EXPLAIN key_len的计算

    可以看到上图中id、loginName、name、password这几个字段都设计成225长度的varchar字符串。其中id还是主键字段。 根据阿里巴巴的java代码规约,这里的字段命名有问题。下图即是从阿里巴巴java编码规约中截取的部分。...

    mysql url到domain的转化函数

    在MySQL数据库环境中,有时我们需要将URL转换为对应的域名,这对于数据分析、日志处理或网站统计等应用场景非常有用。本文将详细介绍一个名为`func_url2domain.sql`的SQL函数,它专门用于实现这一功能。 首先,`...

    mysql笔记.doc

    在MySQL中,有一些核心的函数用于数据处理和计算,这些函数对于日常的数据操作至关重要。以下将详细介绍标题和描述中提到的几个关键函数。 (A) `ROUND(数值, 位数)` 是一个四舍五入函数,它接受两个参数:要四舍五...

Global site tag (gtag.js) - Google Analytics