【问题标题】:mysql - can I set VARCHAR default value as NULL?mysql - 我可以将 VARCHAR 默认值设置为 NULL 吗?
【发布时间】:2011-04-05 18:48:24
【问题描述】:

在 mysql 中,我尝试像这样更改现有表:

  ALTER TABLE  `etexts` CHANGE  `etext`  `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT NULL

我收到了回复:

  #1067 - Invalid default value for 'etext' 

为什么?

【问题讨论】:

    标签: mysql mysql-error-1067


    【解决方案1】:

    这是矛盾的...NOT NULL,但将其设为默认值NULL...
    去掉DEFAULT NULL,把NOT NULL改成NULL:

    ALTER TABLE  `etexts` CHANGE  `etext`  `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
    

    【讨论】:

    • 谢谢 - 奇怪的是,这就是 phpmyadmin 为我生成的!! (我在上面的问题中粘贴的内容)
    • phpMyAdmin 并不总是正确的。如果尚未报告,您可能需要填写错误。
    【解决方案2】:

    您不能将 NOT NULL 列默认为 NULL。

    如果你希望它可以为空,那么

    ... COLLATE latin1_swedish_ci NULL 
    

    如果没有为列提供值,NULLABLE 列将自动默认为 NULL

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 2021-02-25
      相关资源
      最近更新 更多