MySQL#1364 - 字段'column_name'没有默认值 - 无法插入到DB中

时间:2016-09-24 08:48:02

标签: mysql default mysql-error-1364

我最近将我的MySQL数据库移动到一个新服务器,它给了我一些我之前对MySQL有较新经验的问题。 我的表格列设置为“Default => None”,我的表格一直根据数据类型生成默认值。但现在当我尝试插入表中时,我收到此错误消息: “#1364 - 字段'column_name'没有默认值”,然后没有任何内容插入到表中。

如何让“默认”选择它自己的值?

1 个答案:

答案 0 :(得分:10)

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

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

这意味着您有两个选择:

  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';

    当然,你的字段类型与你要改变的字段相匹配。