sql学习笔记:id自增长,富文本,唯一值,备注,价格数据类型设置,以及创建表属性当前时间error: Incorrect table definition; there can be only on

/*
小总结:
SQL分类:
dcl:数据控制语言
grant revoke commit ROLLBACK
ddl:数据定义语言(元数据 结构
create drop alter
dml:数据操纵语言(数据
insert DELETE update SELECT
*/

例子:

create table t_user(
	id int primary key auto_increment COMMENT 'id自增长',
	username VARCHAR(100) UNIQUE not NULL COMMENT '用户名',
	password VARCHAR(100) not NULL COMMENT '密码',
	email VARCHAR(100) COMMENT '邮箱',
	phone VARCHAR(20) COMMENT '电话',
	question VARCHAR(200) COMMENT '找回密码的问题',
	answer VARCHAR(200) COMMENT '找回密码的答案',
	role int DEFAULT 0 COMMENT '角色',
	createTime timestamp DEFAULT NOW() COMMENT '创建时间',
	updateTime datetime COMMENT '更新时间'
)auto_increment=10000 DEFAULT charset=utf8;

要素整理:

1.id自增长

添加 auto_increment 自增长
添加 primary key 设为主键
添加 COMMENT ‘id自增长’ 添加备注

id int primary key auto_increment COMMENT 'id自增长',

2.长文章/富文本

不使用varchar,数据类型更替为text

des text COMMENT ‘描述文本’

3.数据唯一(适用于用户名等)

添加 UNIQUE 属性数据唯一
添加 not NULL 属性非空

username VARCHAR(100) UNIQUE not NULL COMMENT '用户名',

3.默认值

添加 DEFAULT 0 提供默认值0

role int DEFAULT 0 COMMENT '角色',

4.数据类型:规定数字位数与小数点后位数(适用于价格)

添加 decimal(20,2) (位数,小数点后位数)

price decimal(20,2) DEFAULT 0 COMMIT ‘价格’

5.当前时间

直接使用 now() mysql已经封装好的方法
可以和DEFAULT搭配使用:DEFAULT NOW() 默认值当前时间

createTime timestamp DEFAULT NOW() COMMENT '创建时间',

注意
这里的数据类型是timestamp 不是date或datetime
否则会报错:
error: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Invalid default value for ‘createtime’
因为createtime是获取当前时间 应该用时间戳,而不是datetime,类型应该改成timestamp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值