3

如果我有以下数据库

CREATE TABLE `my_table` (
  `year` text,
  `event` text
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `my_table` VALUES ('2011', 'john');
INSERT INTO `my_table` VALUES ('2011', 'dave');
INSERT INTO `my_table` VALUES ('2010', 'hany');

我的问题是如何添加id auto_increment以便它可以

INSERT INTO `my_table` VALUES (1, '2011', 'john');
INSERT INTO `my_table` VALUES (2, '2011', 'dave');
INSERT INTO `my_table` VALUES (3, '2010', 'hany');

我已经厌倦了这个但失败了

$q1 = "ALTER TABLE `my_table` ADD COLUMN `id` int(3) NOT NULL auto_increment";
mysql_query($q1) or die(mysql_error()." at row ".__LINE__);

并给了我错误Incorrect table definition,所以如何正确地做到这一点。

4

1 回答 1

6

你应该先添加COLUMN然后INDEX然后AUTO_INCREMENT

ALTER TABLE  `my_table` ADD COLUMN `id` int(3) NOT NULL;
ALTER TABLE  `my_table` ADD PRIMARY KEY (`id`);
ALTER TABLE  `my_table` CHANGE  `id`  `id` INT( 3 ) NOT NULL AUTO_INCREMENT;

或 2 个查询:

ALTER TABLE my_table ADD COLUMN `id` int (3) NOT NULL;
ALTER TABLE my_table ADD PRIMARY KEY `id`(`id`), CHANGE  `id`  `id` INT( 3 ) NOT NULL AUTO_INCREMENT;
于 2012-05-06T14:50:20.567 回答