当前位置: 首页 > 知识库问答 >
问题:

如何处理 MySQL 中的空白条目

孙京
2023-03-14

我一直在努力在MySQL中输入空白值。例如,代码:

INSERT INTO `tablename` (column1, column2) VALUES ('value1', '');

不会工作。我总是收到以下错误:

#1265 - Data truncated for column 'column2' at row 1

但是,当我运行以下两个语句之一时:

INSERT INTO `tablename` (column1, column2) VALUES ('value1', 'value2');

INSERT INTO `tablename` (column1, column2) VALUES ('value1', NULL);

这个查询工作得很好。column2的默认值已设置为“0”,仍然没有运气。

我面临的问题是所有表中的所有列。我的申请将有空白条目(无法更改)。这个功能以前工作得很好,当我将应用程序代码转移到另一个服务器时,我开始出现这个错误。

MySQL服务器版本:8.0.22-MySQL社区服务器-GPL

表格结构如下所示:

我正面临着所有专栏中的错误。任何帮助都将不胜感激!

表架构:

CREATE TABLE `recordnew` (
 `id` int NOT NULL AUTO_INCREMENT,
 `timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `course_id` int DEFAULT NULL,
 `subject_id` int DEFAULT NULL,
 `teacher_id` int DEFAULT NULL,
 `student_id` int DEFAULT NULL,
 `month` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
 `attendance` int DEFAULT NULL,
 `totalclasses` int DEFAULT NULL,
 `tutorialattendance` int DEFAULT NULL,
 `tutorialclassestotal` int DEFAULT NULL,
 `practicalattendance` int DEFAULT NULL,
 `practicalclassestotal` int DEFAULT NULL,
 `testmarks` double(11,2) DEFAULT '0.00',
 `assignmentmarks` double(11,2) DEFAULT '0.00',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=68612 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Attendance & Internal Assessment Record'

我的实际查询:

INSERT INTO `recordnew` 
            (`course_id`, 
             `subject_id`, 
             `teacher_id`, 
             `student_id`, 
             `month`, 
             `attendance`, 
             `totalclasses`, 
             `testmarks`, 
             `assignmentmarks`, 
             `tutorialattendance`, 
             `tutorialclassestotal`, 
             `practicalattendance`, 
             `practicalclassestotal`) 
VALUES      ('13', 
             '17', 
             '10', 
             '1704', 
             'Marks', 
             '0', 
             '0', 
             '15', 
             '', 
             '0', 
             '0', 
             '0', 
             '0') 

上述查询出错:

#1265 - Data truncated for column 'assignmentmarks' at row 1

其他查询:

INSERT INTO `recordnew` 
            (`course_id`, 
             `subject_id`, 
             `teacher_id`, 
             `student_id`, 
             `month`, 
             `attendance`, 
             `totalclasses`, 
             `testmarks`, 
             `assignmentmarks`, 
             `tutorialattendance`, 
             `tutorialclassestotal`, 
             `practicalattendance`, 
             `practicalclassestotal`) 
VALUES      ('13', 
             '17', 
             '10', 
             '1704', 
             '', 
             '0', 
             '0', 
             '15', 
             '0', 
             '0', 
             '0', 
             '0', 
             '0') 

上述查询出错:

#1265 - Data truncated for column 'month' at row 1

共有1个答案

咸亦
2023-03-14

最有可能的是,列 2 是数值数据类型,而不是类似字符串的数据类型。空字符串不是有效的数值,因此您会收到警告。

指导方针:

>

  • 如果要存储空字符串,请使用字符串数据类型(varcharchar 等)。

    不要将数字存储为字符串!

    如果要表示缺少数据,请使用NULL

  •  类似资料:
    • 在运行中,模板中的 空白 处理在某种程度上来说是纠缠所有模板引擎的一个问题。 我们来看这个模板。我已经用颜色标记了模板中的组件: 文本, 插值, FTL 标签.。 使用 [BR] 来想象 换行。 <p>List of users:[BR] <#assign users = [{"name":"Joe", "hidden":false},[BR] {

    • 问题内容: 我确实有一个包含超过100000个数据元素的表,但是其中几乎有350个空白行。如何使用phpmyadmin删除此空白行?手动删除是一项繁琐的任务。 问题答案: 普遍的答案是: 或者 参见:http : //dev.mysql.com/doc/refman/5.0/en/delete.html 发布表格时的更多信息!〜 另外,请务必执行以下操作: 删除之前,这样就可以看到要删除的行!我认

    • white-space属性用来设置文本内空白符(如空格、回车、tab字符等)的处理方式,可选值有 normal | pre | nowrap | pre-wrap | pre-line,默认值为 normal。该属性出自 CSS1,在 CSS 2.1中新增了属性值 pre-wrap 和 pre-line。不同取值的含义见表 3‑6: 表 3‑6 white-space属性的取值及含义 属性值 含义

    • 我创建了一个OpenGL(GL_TEXTURE_2D)纹理,使用clCreateFromGLTexture()制作了一个OpenCLimage2d_t缓冲区,我运行我的OpenCL内核来绘制纹理,使用clEnqueueAcquireGLObject和clEnqueueReleaseGLObject之前和之后,然后我通过这样做在OpenGL中显示结果(我试图简单地将我的帧缓冲区纹理绘制到没有缩放的窗

    • 我试图创建一个简洁的结构,用于理解基于未来的业务逻辑。下面是一个示例,其中包含一个基于异常处理的工作示例: 然而,这可能被视为一种非功能性或非Scala的处理方式。有更好的方法吗? 请注意,这些错误来自不同的来源——有些在业务级别(“检查所有权”),有些在控制器级别(“授权”),有些在数据库级别(“找不到实体”)。因此,从单一常见错误类型派生它们的方法可能不起作用。

    • 我为一种简单的编程语言创建了lexer。现在,我使用确定性有限自动机代替正则表达式(Java中的正则表达式)。自动机工作得很好,只是它不会报告错误,例如,如果我在源代码中有moduleclouds(module和clouds都是关键字)。相反,它将创建两个令牌,称为KW_模块和KW_云。有人可能会说,如果自动装置处于KW_模块的最终状态,我可以展望空白。但这并不能解决问题,因为在语言中,我可以有8