mysql插入空日期报错_MYSQL timestamp NOT NULL插入NULL的报错问题
时间: 2024-02-09 11:09:21 浏览: 77
如果你的 MySQL 数据库中某个表的某个 timestamp 类型的字段设置为 NOT NULL,那么在插入数据时如果尝试插入 NULL 值就会报错。为了解决这个问题,你可以在插入数据时指定一个默认值,例如当前时间。
具体做法是,在 INSERT INTO 语句中指定当前时间,例如:
```sql
INSERT INTO my_table (timestamp_column) VALUES (NOW());
```
这样就会将当前时间插入到 timestamp_column 字段中,避免了插入 NULL 值的问题。
相关问题
CREATE TABLE `test_mysql_bushu_detail` ( `rank` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '排名', `complement_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '日期', `etl_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行时间', ) ENGINE=InnoDB AUTO_INCREMENT=169572 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在你提供的 SQL 语句中,存在一个逗号 `,` 在最后一列之后,导致了语法错误。你可以将最后一列的逗号删除,即可解决该问题。下面是修正后的 SQL 语句:
```
CREATE TABLE `test_mysql_bushu_detail` (
`rank` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '排名',
`complement_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '日期',
`etl_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行时间'
) ENGINE=InnoDB AUTO_INCREMENT=169572 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
请注意,如果你的 MySQL 版本较老,可能不支持 `utf8mb4_unicode_ci` 或 `CURRENT_TIMESTAMP`,你可以根据实际情况进行修改。
CREATE TABLE `card` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `store_id` varchar(20) NOT NULL COMMENT '店铺ID', `batch_id` bigint(20) NOT NULL COMMENT '批次ID', `card_code` varchar(128) NOT NULL COMMENT '卡号', `card_type` int(6) NOT NULL COMMENT '卡券状态', `distributor` varchar(64) NOT NULL COMMENT '经销商', `mobile` varchar(64) NOT NULL COMMENT '领取电话', `publish_time` timestamp NULL DEFAULT NULL COMMENT '发行时间', `activate_time` timestamp NULL DEFAULT NULL COMMENT '激活时间', `sell_time` timestamp NULL DEFAULT NULL COMMENT '售出时间', `get_time` timestamp NULL DEFAULT NULL COMMENT '领取时间', `finish_time` timestamp NULL DEFAULT NULL COMMENT '完成时间', `card_info` varchar(512) DEFAULT NULL COMMENT '卡券备注', `create_by` varchar(15) NOT NULL COMMENT '创建人', `update_by` varchar(15) DEFAULT NULL COMMENT '修改人', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT AUTO_INCREMENT=31 CHARSET=utf8 COMMENT='卡券表'
这是一个MySQL的建表语句,创建了一个名为"card"的表,包含了卡券的相关信息,如店铺ID、批次ID、卡号、卡券状态、经销商、领取电话等等。其中,id为主键,自增长;create_time和update_time字段分别为创建时间和修改时间,均设置了默认值。表格的字符集为utf8,存储引擎为InnoDB。
阅读全文