mysql踩坑记录
来源:互联网 发布:新版淘宝直播在哪里看 编辑:程序博客网 时间:2024/04/28 22:26
由于本小白并未系统学习过mysql数据库,今天跟着慕课网视频,敲创表sql语句。一模一样的sql语句,人家的轻松通过,我的一直报错(用的cmd)。找了半天,逼不得已只能一个一个词去掉调试sql语句,还去度娘那串了个门。才发现了两处错误,特此做个笔记,希望下次不要在掉坑。
PS:看来得找个时间系统学下mysql了
sql语句在此(windows的给过了):
CREATE TABLE seckill ( seckill_id bigint NOT NULL AUTO_INCREMENT COMMENT '商品库存ID', name varchar(120) NOT NULL COMMENT '名字', number int NOT NULL COMMENT '库存数量', create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', start_time timestamp NOT NULL COMMENT '秒杀开始时间', end_time timestamp NOT NULL COMMENT '秒杀结束时间', PRIMARY KEY(seckill_id), KEY idx_start_time(start_time), KEY idx_end_time(end_time), KEY idx_create_time(create_time) )ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 COMMENT '秒杀库存表';
问题:
- 在创建表的时候,列名(即字段名)上不能带引号(单、双引号都不行)。
- 在设置时间默认值上:由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。
- 可是,最坑的就是:TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。所以,需要创建默认时间的那个字段,在创表的时候一定要在其他时间字段上面。比如这样就可以:
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
start_time timestamp NOT NULL COMMENT ‘秒杀开始时间’,
end_time timestamp NOT NULL COMMENT ‘秒杀结束时间’,`
但是换一下顺序~~
就报错了
- 可是,最坑的就是:TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果有多个TIMESTAMP列,只有第一个自动更新。所以,需要创建默认时间的那个字段,在创表的时候一定要在其他时间字段上面。比如这样就可以:
懵逼的是,老师的创建成功了。。。望路过的大神指点下
阅读全文
0 0
- mysql踩坑记录
- mysql 5.7.20 解压版安装踩坑记录
- mysql 记录
- mysql 记录
- mysql记录
- MySQL记录
- Mysql 记录
- Mysql记录
- 记录mysql
- MySQL 记录
- MySQL记录
- MySQL记录
- mysql 记录语句记录
- 记录些踩过的坑-在linux中安装mysql
- MySQL检索记录
- Mysql取特定记录
- MYSQL 取前十条记录
- 检索MYSQL记录
- 我的实现_滚动列表
- luogu1096 Hanoi双塔问题【2007提高】(递推+高精)
- Exchange2013通讯组授权其他用户管理其中成员方法
- awk
- 问题 : 挖掘机技术哪家强
- mysql踩坑记录
- STL MAP使用注意事项
- hdu 2897 邂逅明下
- 好用的vim 配置
- 【AC自动机-fail树+树链合并】BZOJ3881(Coci2015)[Divljak]题解
- 如何求两个序列的相似度
- 问题 : 到底买不买
- hibernate+pageBean实现分页dao层功能代码
- WP_D0g3_exec