【发布时间】:2010-12-01 22:08:35
【问题描述】:
如何设置 MySQL 表中从 1001 开始的“id”列的初始值?
我想做一个插入"INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";
没有指定id列的初始值。
【问题讨论】:
标签: mysql insert auto-increment
如何设置 MySQL 表中从 1001 开始的“id”列的初始值?
我想做一个插入"INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')";
没有指定id列的初始值。
【问题讨论】:
标签: mysql insert auto-increment
使用这个:
ALTER TABLE users AUTO_INCREMENT=1001;
或者如果您还没有添加 id 列,也添加它
ALTER TABLE users ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ADD INDEX (id);
【讨论】:
ADD INDEX 在这里做什么?我是否必须将其添加到与id 列相同的语句中,还是可以在CREATE TABLE 块中定义id 列,然后在ADD INDEX(id) 中定义?
there can be only one auto column and it must be defined as a key。您需要索引,因此它将是 MUL 键。
第 1 步,创建表格:
create table penguins(
my_id int(16) auto_increment,
skipper varchar(4000),
PRIMARY KEY (my_id)
)
第二步,设置自增主键的起始编号:
ALTER TABLE penguins AUTO_INCREMENT=1001;
第 3 步,插入一些行:
insert into penguins (skipper) values("We need more power!");
insert into penguins (skipper) values("Time to fire up");
insert into penguins (skipper) values("kowalski's nuclear reactor.");
第 4 步,解释输出:
select * from penguins
打印:
'1001', 'We need more power!'
'1002', 'Time to fire up'
'1003', 'kowalski\'s nuclear reactor'
【讨论】:
insert into penguins (my_id, skipper) values(999, "explicit id");(当使用0而不是999时会插入自动增量值)
MySQL 工作台
如果你想避免写sql,你也可以在MySQL Workbench中通过右键单击表,在菜单中选择“Alter Table ...”。
当表结构视图打开时,转到选项卡“选项”(在视图的底部),并将“自动增量”字段设置为下一个自动增量数字的值。
完成所有更改后,不要忘记点击“应用”。
PhpMyAdmin:
如果您使用的是 phpMyAdmin,您可以单击左侧导航中的表格,转到“操作”选项卡,在表格选项下更改 AUTO_INCREMENT 值,然后单击确定。
【讨论】:
首先您需要为自动增量添加列
alter table users add column id int(5) NOT NULL AUTO_INCREMENT FIRST
这个查询首先是添加列。
现在您必须重置自动增量初始值。所以使用这个查询
alter table users AUTO_INCREMENT=1001
现在您的表以 1001 开头
【讨论】:
您也可以在create table 语句中设置它。
`CREATE TABLE(...) AUTO_INCREMENT=1000`
【讨论】:
使用 CREATE TABLE 语句
CREATE TABLE my_table (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
) AUTO_INCREMENT = 100;
或使用 ALTER TABLE 语句
ALTER TABLE my_table AUTO_INCREMENT = 200;
【讨论】:
为此,您必须设置 AUTO_INCREMENT 值
ALTER TABLE tablename AUTO_INCREMENT = <INITIAL_VALUE>
例子
ALTER TABLE tablename AUTO_INCREMENT = 101
【讨论】:
另外,在 PHPMyAdmin 中,您可以从左侧选择表格(表格列表),然后前往那里执行此操作。
操作选项卡->表格选项->AUTO_INCREMENT。
现在,设置您的值,然后按 转到 Table Options Bo 下x。
【讨论】:
SET GLOBAL auto_increment_offset=1;
SET GLOBAL auto_increment_increment=5;
auto_increment_increment:连续列值之间的间隔
auto_increment_offset:确定 AUTO_INCREMENT 列值的起点。 默认值为 1。
【讨论】: