MySQL CREATE TABLE语句中的主键定义
这段代码之间的区别是什么:MySQL CREATE TABLE语句中的主键定义,mysql,Mysql,这段代码之间的区别是什么: 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_INCRE
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;
密码
因此,可以使用单独的主键语句或作为列定义的一部分。列定义中的唯一索引和唯一关键字也有同样的问题。给猫换肤的方法有很多种,以上两个例子就是其中的两个。它们是相同的。没有区别。MySQL允许使用主键指令动态设置主键。提供主键作为构造函数的参数只能在创建列时调用。主键(X)、主键(Y)、主键(Z)允许在后续查询中更改主键。它们实际上是相同的。这里有一个快速的网站,向你展示了不同的方法 第二种语法只是一种快捷方式,允许您在单个子句中指定列并在其上添加索引 如果您只想创建一个列并在其上添加索引,那么这种方法就可以了
如果要执行更复杂的操作,例如添加基于多个列而不是单个列的索引,或者在现有列上添加或更改索引,则需要使用第一种语法;也就是说,您没有同时创建列和列上的索引。我的看法是。。第一种方法用于创建复合关键点。而如果表中只有主键,则主要使用第二种方法(我更容易理解)
如果要实现复合键,则不能使用第二种方法,因为两者都是相同的,不是吗?我并不完全同意,请看@thomasrutterThank的答案!我喜欢有论据的答案。我并不完全同意,请参阅@ThomasRutter的答案。更确切地说,他提供的两个例子做了完全相同的事情,但前一个例子比后一个例子有更多的特点。