基本上标题说明了我要做的事情。 mysql手册概述了它应该如何工作:http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html
然而,我认为,我必须遗漏一些明显的东西,因为它不适合我。这是我的代码:$sql = "CREATE TABLE $table_name (
id MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
block VARCHAR(30) NOT NULL,
issue_number MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
date BIGINT(30),
UNIQUE (id),
PRIMARY KEY (block, issue_number)
);";
答案 0 :(得分:2)
我认为没有posibilites在一张表中有一个以上的自动增量列。使用此:
$sql = "CREATE TABLE $table_name (
id MEDIUMINT(9) NOT NULL,
block VARCHAR(30) NOT NULL,
issue_number MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
date BIGINT(30),
UNIQUE (id),
PRIMARY KEY (block, issue_number)
);"
答案 1 :(得分:1)
只能有一个自动列,必须将其定义为键,下面一个是
CREATE TABLE table_name (
id MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
block VARCHAR(30) NOT NULL,
issue_number MEDIUMINT(9) NOT NULL ,
date BIGINT(30),
UNIQUE (id),
PRIMARY KEY (block, issue_number)
)
答案 2 :(得分:0)
与其他人说的一样,只允许一个auto_increment -column。您可以尝试在insert-statement中增加id。
insert into $table_name (id) values (1) on duplicate key update id = id + 1;
但也许不是最好的解决方案..
答案 3 :(得分:0)
您可以使用自动递增的issue_number
字段创建MyISAM表,例如 -
CREATE TABLE table_name(
id MEDIUMINT(9) NOT NULL,
block VARCHAR(30) NOT NULL,
issue_number MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
date BIGINT(30),
UNIQUE (id),
PRIMARY KEY (block, issue_number)
)
ENGINE = MYISAM;