14

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

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

4

1 回答 1

15

它肯定不会保存到数据库中,因为字段“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';
    

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

于 2016-09-24T09:01:38.443 回答