我找到了以下create语句,并有两个问题。
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在这里做什么?
发布于 2017-08-10 12:56:05
每个索引都有一个名称。它被MySQL用于某些命令,这样就可以引用索引,例如在更改表和删除键时--您必须指定要删除的键,这是通过提供它的名称来完成的。
总是用有意义的名字。我们通常跳过键名,以便MySQL在默认情况下给出它们的名称,这些名称由索引所涵盖的列组成。
KEY domain_path (domain(140),path(51))的意思是“最多从域列取140个字符,然后从路径列最多取51个字符,并将其添加到索引结构中”。
您可以在手册中阅读更多有关此语法的内容。,这是在第一个例子中提到的。
https://stackoverflow.com/questions/45614056
复制相似问题