使用MySQL,当您想要更改密码或字符集时,您可以这样做:
SET CHARACTER_SET_RESULTS = 'utf8';
但是,当您想要更改表的自动增量变量时,需要使用不同的语法:
ALTER TABLE foobar AUTO_INCREMENT=1;
这使我想知道,如果它是这样的话,它是否会更加一致:
SET AUTO_INCREMENT=1;
因为某些SET
操作适用于表。但我想,这种语法选择肯定有一些原因。在查看文档时,我发现了以下内容:
ALTER更改表的结构。例如,可以添加或删除列,创建或销毁索引,更改现有列的类型,或重命名列或表本身。您还可以更改诸如用于表或表注释的存储引擎等特性。
但是使用SET
关键字,您也可以更改表的结构,我想是吗?如果我弄错了,请纠正我。
发布于 2016-08-29 13:12:26
变量赋值的
SET
语法使您能够为影响服务器或客户端操作的不同类型的变量分配值:
资料来源: http://dev.mysql.com/doc/refman/5.7/en/set-variable.html
SET
是整个服务器/数据库的操作。不能只为特定的表设置AUTO_INCREMENT
和SET
。AUTO_INCREMENT
信息存储在表本身上。它不是一个全局变量,因为有些表可以有AUTO_INCREMENT=1
,而其他表可以有AUTO_INCREMENT=[another-int-value]
。
要从1以外的
AUTO_INCREMENT
值开始,使用CREATE TABLE
或ALTER TABLE
设置该值,如下所示:ALTER TABLE tbl AUTO_INCREMENT = 100;
资料来源: http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html
发布于 2016-08-29 13:13:34
通过SET,您可以更改未绑定到特定表的mysql变量。
如果要更改auto_increment变量,则对特定表进行更改。这就是为什么您需要使用ALTER语法。
此外,使用create设置的任何内容都可以使用ALTER进行更新。创建表时设置auto_increment。如果不设置它,则默认为1。
https://stackoverflow.com/questions/39207097
复制相似问题