【问题标题】:What does KEY mean in SQL? [duplicate]SQL中的KEY是什么意思? [复制]
【发布时间】:2018-11-16 04:23:11
【问题描述】:

这条线是什么意思?

KEY FK_CodigoCliente_idx (CodigoCliente),

CREATE TABLE tbvenda (
  Codigo int(11) NOT NULL AUTO_INCREMENT,
  CodigoCliente int(11) NOT NULL,
  DataVenda date NOT NULL,
  ValorTotal decimal(10,2) NOT NULL,
  Situacao int(11) NOT NULL,
  PRIMARY KEY (Codigo),
  KEY FK_CodigoCliente_idx (CodigoCliente),
  CONSTRAINT FK_CodigoCliente FOREIGN KEY (CodigoCliente) REFERENCES tbcliente (Codigo)
);

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    KEY 是 MySQL 中的一个关键字,本质上表示“在这些列上建立索引”。它是INDEX 的同义词(虽然更常见,并且是直接在CREATE TABLE 语句中声明索引的便捷方式。

    这实际上在documentation 中有很好的解释(虽然埋在CREATE TABLE 页面上):

    键 |索引

    KEY 通常是 INDEX 的同义词。关键属性 PRIMARY KEY 可以 当在列定义中给出时,也可以仅指定为 KEY。这 实现与其他数据库系统的兼容性。

    【讨论】:

    • 谢谢Gordon,但我有必要使用它吗?
    • @WSS 。 . .一点也不。如果您不想要索引(例如),则不会使用它。您可以随时添加索引(这通常是个好主意)。如果相同的列/列表示为primary keyunique 约束,通常是多余的。
    • 在这种情况下我也有主键......所以......
    • @WSS 。 . . PRIMARY KEY 的声明已经创建了一个索引。无需在相同的列上创建索引。 (好吧,实际上,当您有一个复合键并且您希望索引以不同的顺序排列时,可能会有一些罕见的情况,但一般来说,一组列上的一个索引就足够了。)
    猜你喜欢
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2015-07-15
    • 2018-07-17
    相关资源
    最近更新 更多