DROP TABLE IF EXISTS `user_accounts`;
CREATE TABLE `user_accounts` (
`id` int(100) unsigned NOT NULL AUTO_INCREMENT primary key,
`password` varchar(32) NOT NULL DEFAULT '' COMMENT '用户密码',
`reset_password` tinyint(32) NOT NULL DEFAULT 0 COMMENT '用户类型:0-不需要重置密码;1-需要重置密码',
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机', `create_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`update_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-- 创建唯一索引,不允许重复
UNIQUE INDEX idx_user_mobile(`mobile`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
COMMENT='用户表信息';
这段代码是SQL语言编写的,用于创建一个名为user_accounts的数据库表。
-
DROP TABLE IF EXISTSuser_accounts;:这行代码用于删除(如果存在)名为user_accounts的表。IF EXISTS是一个安全措施,确保在表存在的情况下才执行删除操作。 -
CREATE TABLEuser_accounts( ... ):这行代码开始创建一个名为user_accounts的新表,并定义了表的结构。 -
接下来的多行代码定义了表中的各个字段(列)及其属性:
id int(100) unsigned NOT NULL AUTO_INCREMENT primary key:定义了一个名为id的字段,数据类型为int,大小为100位,不允许为空(NOT NULL),自动递增(AUTO_INCREMENT),并设置为主键。password varchar(32) NOT NULL DEFAULT '' COMMENT '用户密码':定义了一个名为password的字段,数据类型为varchar,最大长度为32字符,不允许为空,默认值为空字符串,注释为“用户密码”。reset_password tinyint(32) NOT NULL DEFAULT 0 COMMENT '用户类型:0-不需要重置密码;1-需要重置密码':定义了一个名为reset_password的字段,数据类型为tinyint,大小为32位,不允许为空,默认值为0,注释说明了这个字段的用途。mobile varchar(20) NOT NULL DEFAULT '' COMMENT '手机':定义了一个名为mobile的字段,数据类型为varchar,最大长度为20字符,不允许为空,默认值为空字符串,注释为“手机”。create_at timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6):定义了一个名为create_at的字段,数据类型为timestamp,精度为6位小数,不允许为空,默认值为当前时间戳。update_at timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6):定义了一个名为update_at的字段,数据类型为timestamp,精度为6位小数,不允许为空,默认值为当前时间戳,并且每次更新记录时自动设置为当前时间戳。
-
UNIQUE INDEX idx_user_mobile(mobile):在mobile字段上创建了一个唯一索引,确保mobile字段的值在表中是唯一的,不允许有重复。 -
ENGINE=InnoDB DEFAULT CHARSET=utf8:指定了表的存储引擎为InnoDB,这是MySQL数据库的默认存储引擎,适合事务处理。同时指定了表的默认字符集为utf8。 -
COMMENT='用户表信息':为表添加了一个注释,说明这个表存储的是用户信息。