MySQL新建Students表执行SELECT *查询各字段均显示NULL问题求助
问题原因及修复方案
核心问题说明
- 仅创建表结构不会自动生成数据:
DEFAULT约束的作用是插入行时如果未指定该字段的值,自动填充预设的默认值,并非建表后自动生成一条默认数据。你当前查询的是空表,无数据返回。 - 日期默认值语法错误:
dateOfBirth字段的默认值写为(2000-12-12)会被MySQL识别为数值运算,计算结果为1976,不符合DATE类型的格式要求,后续插入数据时会触发警告或生成非法值。
修复操作步骤
- 先删除已创建的错误表(可选,若要保留原有表结构可单独修改字段默认值)
DROP TABLE IF EXISTS Students;
- 重新创建修正了日期默认值的表结构
use practice; create table Students( sid integer default 1, sname varchar(50) default 'Joe', GPA real default 1.7, dateOfBirth date default '2000-12-12', primary key(sid) );
- 插入一条不指定字段值的测试数据,触发默认值填充
INSERT INTO Students () VALUES ();
- 再次执行查询即可看到带默认值的有效记录
SELECT * FROM Students;
内容的提问来源于stack exchange,提问作者SilentEM
相关产品推荐
相关产品推荐

