0
No   Name     Sex
1      A       M
2      B       F
3      C       F
4      D       M

我想用 mysql 数据库在表上获取自动编号。那么该怎么做呢?

4

4 回答 4

3

您已创建具有主键和自动增量的表

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)
)
于 2012-12-26T04:12:48.203 回答
2

有多种方法可以做到这一点,

一种技术是改变表格

  • 更改表
  • 添加新列
  • 将其设置为AUTO_INCREMENT

另一种是使用会话变量

SELECT @rank := @rank+1 As `No`,
       Name, 
       Sex
FROM   table1, (SELECT @rank := 0) r
于 2012-12-26T04:12:52.910 回答
1

自动编号是通过为您希望自动递增的数字列指定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(自动增量)

于 2012-12-26T04:22:52.520 回答
0

如果您想创建一个自动执行此操作的表,大致可以使用...

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;
于 2012-12-26T04:15:20.520 回答