繁体   English   中英

MySQL CREATE TABLE语句中的PRIMARY KEY定义

[英]PRIMARY KEY definition in MySQL CREATE TABLE statement

这段代码有什么区别:

CREATE TABLE samples (
  sampleid INT(11) NOT NULL AUTO_INCREMENT,
  sampledate DATE NOT NULL,
  location VARCHAR(25) NOT NULL,
  PRIMARY KEY (sampleid)
)
ENGINE=InnoDB;

还有这个:

CREATE TABLE samples (
  sampleid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  sampledate DATE NOT NULL,
  location VARCHAR(25) NOT NULL,
)
ENGINE=InnoDB;

码?

所以单独的PRIMARY KEY语句或作为列定义的一部分。 列定义中UNIQUE INDEX和UNIQUE关键字的相同问题。

第二种语法只是一个快捷方式,允许您指定列并在单个子句中为其添加索引。

如果您只想创建一个列并在其上添加索引,这样就可以正常工作。

如果要执行更复杂的操作,则需要使用第一种语法,例如,基于多列而不是单列添加索引,或者在现有列上添加或更改索引; 也就是说,您不是同时在其上创建列和索引。

MySQL允许使用PRIMARY KEY指令允许您动态设置主键。 提供PRIMARY KEY作为构造函数的参数只能在创建列时调用。 PRIMARY KEY(X),PRIMARY KEY(Y),PRIMARY KEY(Z)允许在后续查询中更改主键。

我看到它的方式是..第一种方法用于创建复合键。 虽然表中只有主键,但主要使用第二种方法(对我来说更易读)。

如果要实现组合键,则不能使用第二种方法

皮肤猫的方法有很多种,其中2个例子只有2个。 它们完全相同。 没有区别。

它们字面意思相同。 这是一个快速网站,向您展示了不同的方式(3)。 http://www.java2s.com/Code/SQL/Key/Defineanduseprimarykey.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM