当前位置: 首页 > 面试题库 >

对于整数的MySQL列,错误的整数值''并允许为null?

端木兴国
2023-03-14
问题内容

我正在将CSV插入表中。我对CSV中的内容没有任何控制,很多字段为空白。例如,在我的第一条记录中,“ baths_full”字段为空(两个逗号背对背)。

在运行MySQL 5.5.37的生产服务器上,它将带​​有的记录插入baths_full为空字段。在运行MySQL
5.6.19的本地计算机上,出现以下错误:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'baths_full' at row 1 (SQL: insert into `listings_queue` (`

奇怪的是,表的架构是相同的。实际上,我使用生产机器的导出来创建本地数据库。

该字段baths_full设置为TinyInt,无符号,允许为null,默认为null。要添加的一件事是,它看起来像在SQL插入语句Laravel中创建的那样,将空值视为空格。无论如何,我的生产机器都可以毫无问题地运行脚本,但是在本地不会运行。


问题答案:

我发现了我的问题。我的本地MySQL在严格模式下运行。此线程的答案常规错误:1366使用Doctrine 2.1和Zend Formupdate的整数值不正确已修复该问题。

您正在使用MySQL吗?发生这种情况是因为MySQL在严格模式下运行。从phpMyAdmin或您正在使用的任何数据库管理员运行以下查询,以检查数据库是否处于严格模式下:

SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;

如果返回包含STRICT_TRANS_TABLES您可以尝试运行的内容:

SET @@global.sql_mode= 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';


 类似资料:
  • 问题内容: 我想知道与int相比,java是否自动将Integer转换为int?还是==尝试比较原始元素上的引用? 这是真的吗?还是我需要做? 问题答案: 是的,使用参数进行比较时,如有必要,将取消装箱。 Java语言规范的相关部分: 15.21.1数值相等运算符==和!= 如果相等运算符的操作数都是数字类型,或者一个是数字类型,而另一个可以转换(第5.1.8节)为数字类型,则对操作数(第5.6.

  • 问题内容: 在Python中,给定一个排序的整数列表,我将按连续的值对它们进行分组, 并 允许间隔为1。 例如,给定一个列表: 我想要以下输出: 现在,如果我不必忍受1的差距,我可以采用在此说明的简洁解决方案: 有没有办法在上述解决方案中纳入我的额外要求?如果没有,解决问题的最佳方法是什么? 问题答案: 如有疑问,您可以随时编写自己的生成器: 演示:

  • 问题内容: 我新设置了TYPO3,但是当我尝试添加/保存内容时,它给了我这个错误: SQL错误:第1行的“ sys_language_uid”列的“错误整数值:” 问题答案: 该行为与使用严格模式的数据库管理系统有关,例如从版本5.7开始的MySQL。禁用严格模式(如接受的答案中所提供的)只是一种变通方法。 真正的解决方案是通过修改用于相应字段定义的TCA(表配置数组)来将值显式转换为整数。 对于

  • 答:[65,65,65,A]但我料到了[65,A]

  • 我试图使用psycopg2的copy_from()方法将数据从python的StringIO对象加载到Postgres数据库表中。 我的copy_from在第一条记录本身失败,特别是对于具有空值(无引号)的特定(可为空)整数列。我还尝试使用Python的“无”关键字代替“空值”。它向我抛出以下错误:数据错误:整数的无效输入语法:""CONTEXT: COPY,第1行,列:"" 代码如下所示: 此列

  • 问题内容: 以下代码有什么问题? 该代码在最后一行有以下错误: 线程“主”中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Integer; 问题答案: 可以使用或。 在这里点击的原因是你不能将的数组视为的数组。是的子类型,但不是的子类型。 并且以下内容也不会给出。