请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

创建sessions表失败

CREATE TABLE sessions (

session_id TINYTEXT PRIMARY KEY NOT NULL,

TTL TINYTEXT,

login_name VARCHAR(64)

);

错误: BLOB/TEXT column 'session_id' used in key specification without a key length

正在回答

3回答

同学你好,这个表属于历史遗留问题。session_id 是使用tinytext类型的,但是mysql里面没有长度的primary key是不允许建表时候创建的,所以这个问题用如下方法解决:

CREATE TABLE sessions (
session_id tinytext not null,
TTL tinytext,
login_name varchar(64)
);
ALTER TABLE sessions ADD PRIMARY KEY (session_id(64));

实际上由于session id是一个uuid,那么使用varchar(64)直接创建也是可以的

祝您学习愉快

1 回复 有任何疑惑可以回复我~
  • 提问者 时务者 #1
    非常感谢~ 辛苦辛苦
    回复 有任何疑惑可以回复我~ 2018-06-05 22:19:30
  • 这个表不用主键?
    回复 有任何疑惑可以回复我~ 2018-07-10 23:22:21
  • 如果这样设计,到时候查询是不是一个问题?
    回复 有任何疑惑可以回复我~ 2018-07-10 23:24:19
痞子过 2018-07-10 23:25:03

//表设计语句

create database video default charset utf8;

use video;



create table users(author_id bigint not null primary key auto_increment,

login_name varchar(64) ,pwd text) engine=innodb;



create table video_info(video_id varchar(64) not null primary key,author_id bigint,name text,

display_ctime text,create_time datetime) engine=innodb;




create table session(session_id tinytext  not null ,

ttl tinytext,login_name varchar(64)) engine=innodb;




create table  comments(command_id varchar(64) not null primary key,video_id varchar(64),


author_id  bigint,content text,time datetime

) engine=innodb;


0 回复 有任何疑惑可以回复我~
sliverg 2018-06-05 21:26:14

TINYTEXT ,作为主键, 这个类型要添加长度的 ,不然系统没法办证唯一性,但是  TINYTEXT  这个没有长度,所以建议加一个自增主键

0 回复 有任何疑惑可以回复我~
  • 提问者 时务者 #1
    嗯,解决了,谢谢你
    回复 有任何疑惑可以回复我~ 2018-06-05 22:21:35
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信