date NOT NULL DEFAULT '1970-00-00'
时间: 2023-10-19 19:08:16 浏览: 27
这是一个 MySQL 数据库表中的列定义,表示该列名为 date,非空(NOT NULL),默认值为 '1970-00-00'。注意,实际上 '1970-00-00' 并不是一个合法的日期,正确的日期应该是 '1970-01-01'。当该列没有被显式地赋值时,MySQL 将使用默认值 '1970-01-01'。
相关问题
date NOT NULL DEFAULT '1970-00-00' 报错
这个SQL语句中的日期默认值 '1970-00-00' 是不正确的,因为日期中的月份和日期必须是合法的数字。正确的默认日期应该是 '1970-01-01'。请修改SQL语句如下:
```
ALTER TABLE table_name MODIFY column_name DATE NOT NULL DEFAULT '1970-01-01';
```
注意,这里的 table_name 和 column_name 分别是表名和列名,需要替换成实际的表名和列名。
CREATE TABLE emp ( id INT PRIMARY KEY, --员工姓名,非空且唯一 ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一 joindate DATE NOT NULL, --入职日期,非空 salary DOUBLE(7,2) NOT NULL, --工资,非空 bonus DOUBLE(7,2) DEFAULT 0 --奖金,如果没有记为零 );错哪了
在上述 SQL 语句中,DOUBLE 数据类型应该写成 DECIMAL,因为 DOUBLE 类型有精度问题。同时,如果你想要设置 bonus 的默认值为 0,应该将 DEFAULT 0 改为 DEFAULT '0'。
因此,正确的 SQL 语句如下:
```
CREATE TABLE emp (
id INT PRIMARY KEY, --员工 ID,非空且唯一
ename VARCHAR(50) NOT NULL UNIQUE, --员工姓名,非空并唯一
joindate DATE NOT NULL, --入职日期,非空
salary DECIMAL(7,2) NOT NULL, --工资,非空
bonus DECIMAL(7,2) DEFAULT '0' --奖金,如果没有记为零
);
```