0

基本上,标题说明了我正在尝试做的事情。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)
);";
4

4 回答 4

2

我认为在一张表中没有超过一个自动增量列的可能性。用这个:

$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)
);"
于 2012-05-23T06:37:35.170 回答
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)
)
于 2012-05-23T06:38:55.900 回答
0

就像其他人说的那样,只允许一个 auto_increment -column。您可以尝试在插入语句中增加您的 id。

insert into $table_name (id) values (1) on duplicate key update id = id + 1; 

但也许不是最好的解决方案..

于 2012-05-23T06:46:42.770 回答
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;
于 2012-05-23T06:46:59.417 回答