首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中创建表键-命名是什么?

问在MySQL中创建表键-命名是什么?
EN

Stack Overflow用户
提问于 2017-08-10 12:42:01
回答 2查看 48关注 0票数 1

我找到了以下create语句,并有两个问题。

代码语言:javascript
复制
CREATE TABLE signups (
  signup_id bigint(20) NOT NULL auto_increment,
  domain varchar(200) NOT NULL default '',
  path varchar(100) NOT NULL default '',
  activation_key varchar(50) NOT NULL default '',
  PRIMARY KEY  (signup_id),
  KEY activation_key (activation_key),
  KEY domain_path (domain(140),path(51))
) $charset_collate;"

为什么我要命名密钥activation_key?这有什么意义吗?我是否可以在进一步的陈述中访问这个名字?还是纯粹的语法?

如果我把它命名为:

KEY domain_path (domain(140),path(51))

我知道我这里有双键,但是140和51在这里做什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-10 12:56:05

每个索引都有一个名称。它被MySQL用于某些命令,这样就可以引用索引,例如在更改表和删除键时--您必须指定要删除的键,这是通过提供它的名称来完成的。

总是用有意义的名字。我们通常跳过键名,以便MySQL在默认情况下给出它们的名称,这些名称由索引所涵盖的列组成。

KEY domain_path (domain(140),path(51))的意思是“最多从域列取140个字符,然后从路径列最多取51个字符,并将其添加到索引结构中”。

您可以在手册中阅读更多有关此语法的内容。,这是在第一个例子中提到的。

票数 3
EN

Stack Overflow用户

发布于 2017-08-10 12:57:24

为什么我要命名密钥activation_key?

你不知道。你想叫什么就叫什么。

我是否可以在进一步的陈述中访问这个名字?

它可能出现在EXPLAIN语句的输出中。您可以稍后在语句中使用它。如果您喜欢麻烦,您可以在语用学中使用它进行查询。

如果我把它命名为:KEY domain_path (domain(140),path(51)),这意味着什么? 140和51在这里做什么?

这些数字意味着索引是前缀索引。它只涵盖每列开头的字符数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45614056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档