如果没有提供默认值,字段的默认值是多少?

lol*_*ter 15 mysql phpmyadmin default-value

我希望这不是一个愚蠢的问题.您可以为所有变量设置默认值,也可以为插入时设置函数.但是如果不需要插入字段并且您不允许空值,那么您在phpMyAdmin中看到的"空白"值是多少?在一个查询中它是作为空字符串等返回?

只是想弄清楚,我想查询所有记录,使得该记录中特定列的值不是"空"或空白或其他.

谢谢.

Que*_*low 27

参考手册,

对于没有显式DEFAULT子句的NOT NULL列的数据输入,如果INSERT或REPLACE语句不包含该列的值,或者UPDATE语句将列设置为NULL,则MySQL将根据有效的SQL模式处理该列.时间:

  • 如果未启用严格的SQL模式,MySQL会将列设置为列数据类型的隐式默认值.
  • 如果启用了严格模式,则事务表会发生错误,并且会回滚该语句.对于非事务性表,
    会发生错误,但如果多行语句的第二行或后续行发生这种情况,则会插入前面的行.

那么现在你的问题可能是,各种列数据类型的隐式默认值是什么?干得好:

隐式默认值定义如下:

  • 对于数字类型,缺省值为0,但对于使用AUTO_INCREMENT
    属性声明的整数或浮点类型,缺省值是序列中的下一个值.
  • 对于TIMESTAMP以外的日期和时间类型,默认值是该类型的相应"零"值.对于表中的第一个TIMESTAMP列,默认值是当前日期和时间.请参见第10.3节"日期和时间类型".
  • 对于ENUM以外的字符串类型,默认值为空字符串.对于ENUM,默认值是第一个枚举值.