Mysql 尝试在类型为Long的字段上创建主键时出错

Mysql 尝试在类型为Long的字段上创建主键时出错,mysql,sql,Mysql,Sql,尝试使用以下SQL创建表时: CREATE TABLE person(id INTEGER,r_id LONG,p_name TEXT,p_age INTEGER, p_address TEXT,p_mobile LONG,PRIMARY KEY(r_id)); 我得到一个错误: Error Code: 1170 BLOB/TEXT column 'r_id' used in key specification without a key len

尝试使用以下
SQL
创建表时:

CREATE TABLE person(id INTEGER,r_id LONG,p_name TEXT,p_age INTEGER,
                        p_address TEXT,p_mobile LONG,PRIMARY KEY(r_id));
我得到一个错误:

Error Code: 1170
BLOB/TEXT column 'r_id' used in key specification without a key length

这是什么错误

您可能想要
bigint
而不是
LONG
,后者是一种LONG文本数据类型

CREATE TABLE person
(
   id INTEGER,
   r_id BIGINT,
   p_name TEXT,
   p_age INTEGER,
   p_address TEXT,
   p_mobile BIGINT,
   PRIMARY KEY(r_id)
);

请参见您可能想要
bigint
而不是
LONG
,后者是一种长文本数据类型

CREATE TABLE person
(
   id INTEGER,
   r_id BIGINT,
   p_name TEXT,
   p_age INTEGER,
   p_address TEXT,
   p_mobile BIGINT,
   PRIMARY KEY(r_id)
);

请参见java中的
bigint
对应的是什么?它不长。我用一个错误测试了它,它应该与
long
一起工作。看见你在用什么接头?是的,好的。在java中,
bigint
对应的是什么?它不长。我用一个错误测试了它,它应该与
long
一起工作。看见你在用什么接头?是的,好的。这是一个与你的问题无关的错误,但你可能想重新考虑你存储一个人年龄的决定。它会随着时间的推移而改变。这与你的问题无关,但你可能想重新考虑你存储一个人年龄的决定。它随时间而变化。