如何获得自动行号php和mysql

时间:2012-12-26 04:06:48

标签: php mysql sql select

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

我想用mysql数据库获取表上的自动编号。 那怎么办?

4 个答案:

答案 0 :(得分: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)
)

答案 1 :(得分:2)

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

一种技巧是改变表格

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

另一种是使用会话变量

SELECT @rank := @rank+1 As `No`,
       Name, 
       Sex
FROM   table1, (SELECT @rank := 0) r

答案 2 :(得分: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;

或者,您可以add the ID (auto increment) after the table exists

答案 3 :(得分: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;