库脚本导入之后,发现不能新增USER了,一查才发现datetime类型出了问题,程序里面给datetime类型的一个字段是一个空字符串,因此报错。奇怪的是,我把同样的SQL语句发给MySQL公司的人,他们可以正常执行,只是报出一个Warning。
经过大量的查找资料后发现,问题出现my.ini里面的sql-mode的设置上,sql-mode默认为"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",这里把STRICT_TRANS_TALBES去掉之后,重启MySQL,就OK了。
STRICT_TRANS_TABLES的工作方式:
· 对于事务性存储引擎,在语句中任何地方出现的不良数据值均会导致放弃语句并执行回滚。
· 对于非事务性存储引擎,如果错误出现在要插入或更新的第1行,将放弃语句。(在这种情况下,可以认为语句未改变表,就像事务表一样)。首行后出现的错误不会导致放弃语句。取而代之的是,将调整不良数据值,并给出告警,而不是错误。换句话讲,使用STRICT_TRANS_TABLES后,错误值会导致MySQL执行回滚操作,如果可以,所有更新到此为止。
当然,如果想要执行严格的检查,请启用STRICT_TRANS_TABLES,那样的话,就得修改程序,把给datetime类型的空字符修改成"0000-00-00 00:00:00"即可。
分享到:
相关推荐
在给定的代码中,提供了一个将 Java 的 Date 类型转换为 MySQL 的 DateTime 类型的方法,该方法名为DateToMySQLDateTimeString,该方法将 Java 的 Date 对象作为参数,并将其转换为 MySQL 的 DateTime 字符串。...
两者之间的不兼容性意味着在向MySQL数据库插入包含日期时间的数据时,必须先将Java的`Date`对象转换为符合MySQL格式的字符串。 #### 转换方法 为了实现从Java的`Date`类型到MySQL的`DateTime`格式的转换,可以编写...
NULL类型是一种特殊类型,表示值未知或未定义,与0或空字符串不同。布尔类型只有TRUE和FALSE两个值,常用于逻辑判断。 在MySQL中,标识符如数据库名、表名、列名等有一定的命名规则和限制,比如最大长度为64个字符...
然而,初学者可能会遇到问题,比如在尝试将datetime对象直接作为字符串插入时,可能会因为数据类型不匹配而失败。例如,直接使用`%(dt)`或者`'%s' % dt`作为SQL语句的占位符,由于dt是datetime对象,而不是字符串,...
2. 字符串类型:学习VARCHAR、CHAR、TEXT等字符串类型的区别和使用。 3. 日期和时间类型:理解DATE、TIME、DATETIME和TIMESTAMP的区别。 四、SQL基础 1. DDL(Data Definition Language):讲解用于定义数据库结构...
MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。这份学习资料主要涵盖了MySQL的基础操作,包括数据库的管理、表的操作以及数据的增删改查。 首先,我们讨论一下如何...
在MySQL数据库中,datetime类型用于存储日期和时间的组合,格式为"YYYY-MM-DD HH:MM:SS"。然而,在某些情况下,当datetime值从MySQL传递到Java应用程序时,可能会出现尾随的".0",这通常是由于日期时间转换过程中的...
MySQL支持多种数据类型,如整数(INT、BIGINT)、浮点数(FLOAT、DOUBLE)、字符串(VARCHAR、TEXT)、日期和时间(DATE、TIME、DATETIME、TIMESTAMP)等。 4. **查询语句(SELECT)**: SELECT语句是SQL中最常用...
- **数据类型的分类**:MySQL 中的数据类型大致可以分为数值类型、字符串类型和日期时间类型。 - 数值类型进一步细分为浮点数、定点数等,其中浮点数包括 `Float` 和 `Double` 类型。 - 字符串类型则包括 `Char` ...
MySQL支持多种数据类型,包括整数类型(INT、TINYINT等)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR)、日期和时间类型(DATE、TIME、DATETIME)等。选择合适的数据类型对数据库性能和存储效率至关...
数据库和表的创建与管理 表的字段类型 课程目标 掌握 —— 不同数据类型的选择。 理解 —— MySQL支持的数据类型;...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使
MySQL数据库支持多种数据类型,如数值类型(INT, FLOAT, DECIMAL等)、字符串类型(VARCHAR, CHAR等)、日期和时间类型(DATE, DATETIME, TIMESTAMP等)。在导入.csv文件时,确保数据的格式与表中的字段类型相匹配,...
MySQL数据库设计是数据库管理系统的核心部分,它涉及到如何有效地组织、存储和检索数据。在MySQL中,数据类型的选择至关重要,因为它直接影响到数据的存储空间、处理效率以及查询性能。以下是关于MySQL数据库设计的...
* MySQL 中的数据类型包括数字类型、日期类型、字符串类型等。 * 数字类型包括 BIT、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 等。 * 日期类型包括 DATE、DATETIME、TIMESTAMP、TIME、YEAR 等。 * 字符串类型包括...
2. **数据类型**:熟悉MySQL支持的各种数据类型,如整型(`INT`)、浮点型(`FLOAT`)、字符串型(`VARCHAR`)、日期时间型(`DATE`, `TIME`, `DATETIME`)等,并了解它们的区别和适用场景。 3. **SQL语法基础**:...
- 字符串类型:尽量使用char而非varchar,除非确需节省空间,避免使用text/blob。 - 主键:显式指定自增的int或bigint unsigned not null作为主键,避免使用UUID或其他哈希值。 6. **SQL规范**: - SQL简洁:...
5. **CHAR与VARCHAR**:对于固定长度的字符串使用CHAR,对于变长字符串使用VARCHAR,并注意存储需求差异。 6. **字符集一致性**:在不同层次(服务器、数据库、表、列)保持字符集的一致性。 #### 三、数据库优化 ...
MySql 提供了多种数据类型,包括整数类型、浮点数类型、字符串类型、日期时间类型、枚举类型等。每种数据类型都有其特点和用法。 在 MySql 中,整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 等。这些...