No Name Sex
1 A M
2 B F
3 C F
4 D M
我想用 mysql 数据库在表上获取自动编号。那么该怎么做呢?
您已创建具有主键和自动增量的表
http://dev.mysql.com/doc/refman/5.0/en///example-auto-increment.html
请参见下面的代码:
CREATE TABLE Persons
(
id int NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
sex char(1),
PRIMARY KEY (id)
)
有多种方法可以做到这一点,
一种技术是改变表格
AUTO_INCREMENT
另一种是使用会话变量
SELECT @rank := @rank+1 As `No`,
Name,
Sex
FROM table1, (SELECT @rank := 0) r
自动编号是通过为您希望自动递增的数字列指定auto_increment属性来完成的。在创建表时在“id”列上指定它是一种很好的数据库实践,每个 id 唯一地标识一行(也称为主键)。
CREATE TABLE people (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
sex ENUM('m', 'f'),
PRIMARY KEY (id)
) ENGINE=MyISAM;
或者,您可以在表存在后添加 ID(自动增量)。
如果您想创建一个自动执行此操作的表,大致可以使用...
create table mytable (
`No` serial,
/* other fields... */);
http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
但是,如果您删除行,则行号中会出现空白。如果要重置 auto_increment 字段,请使用
alter table mytable
auto_increment = 1;