此代码之间的区别是什么:
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关键字的问题相同。
答案 0 :(得分:46)
第二种语法只是一个快捷方式,允许您指定列并在单个子句中为其添加索引。
如果您只是想创建一个列并在其上添加索引,这样就可以了。
如果要执行更复杂的操作,则需要使用第一种语法,例如添加基于多列而不是单列的索引,或者是否要在现有列上添加或更改索引;也就是说,您没有同时在其上创建列和索引。
答案 1 :(得分:3)
MySQL允许使用PRIMARY KEY指令允许您动态设置主键。提供PRIMARY KEY作为构造函数的参数只能在创建列时调用。 PRIMARY KEY(X),PRIMARY KEY(Y),PRIMARY KEY(Z)允许在后续查询中更改主键。
答案 2 :(得分:1)
我看到它的方式是..第一种方法用于创建复合键。虽然表中只有主键,但主要使用第二种方法(对我来说更易读)。
如果要实现复合键
,则无法使用第二种方法答案 3 :(得分:0)
皮肤猫的方法有很多种,其中2个例子只有2个。它们完全相同。没有区别。
答案 4 :(得分:0)
它们实际上是相同的。这是一个快速网站,向您展示了不同的方式(3)。 http://www.java2s.com/Code/SQL/Key/Defineanduseprimarykey.htm