MySQL #1364 - 字段 'column_name' 没有默认值 - 无法插入数据库

标签 mysql default mysql-error-1364

我最近将 MySQL 数据库移至新服务器,这给我带来了一些我之前在使用 MySQL 时遇到的问题。 我的表列设置为“默认 => 无”,并且我的表已根据数据类型生成默认值。但现在,当我尝试插入表时,我收到此错误消息: “#1364 - 字段“column_name”没有默认值”,然后不会向表中插入任何内容。

我该怎么做才能让“默认”选择它自己的值?

最佳答案

它肯定不会保存到数据库中,因为字段“column_name”(也许还有其他一些字段)被检查为“NOT NULL”。这意味着该字段的值必须不是 NULL(NULL - 根本没有数据)

将字段标记为非空通常是确保某些数据始终存在于字段中的好方法。根据您的需要,您还可以将其标记为 NULL,这样它就不会抛出错误,并且会保存到数据库中,而不需要将任何内容插入到指定字段中。

这意味着你有两个选择:

  1. 将您的字段标记为 NULL(首先检查您的字段是否需要具有某些值)。

    ALTER TABLE `your_table` 
    CHANGE COLUMN `your_field` `your_field` VARCHAR(250) NULL;
    
  2. 向字段添加默认值,这样如果插入时未提供数据,它将放入您定义的内容。 例如:

    ALTER TABLE `your_table` CHANGE COLUMN `your_field` `your_field` VARCHAR(250) NOT NULL DEFAULT 'some_default_value';
    

当然,请将您的字段类型与您要更改的字段相匹配。

关于MySQL #1364 - 字段 'column_name' 没有默认值 - 无法插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59761241/

相关文章:

php - MySQL 拒绝带有 ON DELETE SET NULL 但不是 ON DELETE CASCADE 的列

php - 编码/解码多个国际字符的最佳方法 (MySQL/PHP)

mysql - 字段 'text' 没有默认值

MySQL INSERT 无需指定每个非默认字段(#1067 - 'table' 的默认值无效)

mysql - 根据错误 1364,id 值需要默认值吗?

MYSQL 查询替换字符串的一部分

mysql - 分别计算唯一日期的平均计数

java - 如何在没有反射和动态代理的情况下简单地显式调用默认方法?

java - Parent No Argument Constructor 调用覆盖的方法

haskell - 我想我找到了一个 "non-existent monad"