`

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中随机生成固定长度字符串的方法

    本文将详细讲解如何在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快速指南

    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 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(数值, 位数)` 是一个四舍五入函数,它接受两个参数:要四舍五...

    2021-2022计算机二级等级考试试题及答案No.10872.docx

    - **最大长度**:CHAR和VARCHAR的最大长度并非都是255,实际上MySQL中CHAR的最大长度为255,而VARCHAR的最大长度可以达到65535(根据MySQL版本和字符集的不同可能有所变化)。 #### 3. 关系运算中的选择运算 - **...

    Mysql数据库学习

    - 此命令创建了一个包含自动增长主键、姓名和年龄字段的学生表,并且对年龄进行了约束。 **2.3 创建表的细节说明** - 在创建表时,需要考虑列的数据类型、是否允许空值、是否有约束等。 - 数据类型的选择应根据...

    Mysql学习笔记

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理各种数据。以下是对MySQL学习笔记的详细解释: 1. **MySQL服务的启动与停止**:在命令行中,你可以使用`net start mysql`来启动MySQL服务,`...

Global site tag (gtag.js) - Google Analytics