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

1つのテーブルに複数の自動インクリメント列を含めることはできないと思います。これを使って:

$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

自動列は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)
)
于 2012-05-23T06:38:55.900 に答える
0

他の人が言ったように、auto_increment-columnは1つだけ許可されます。insert-statementで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 に答える