Mysql更新表

时间:2011-09-29 17:03:09

标签: php mysql

如何更新表并使用该ID列中每个条目的ID号创建列?

目前的表格如下:

    city    
-------------
  New York
  Los Angeles
  London
  Belgrade

我需要此表中的列,该列具有每个城市的ID号,这些列号将由列城ASC订购。

类似的东西:

 id   |   city
----------------
  1   | Belgrade
  2   | London
  3   | Los Angeles
  4   | New York

我可以使用mysql查询执行此操作,还是需要使用PHP和Mysql执行此操作?

3 个答案:

答案 0 :(得分:0)

ALTER TABLE table_name
ADD column_name column-definition;

所以在你的情况下它

 ALTER TABLE cities
 ADD id int auto-increment;

答案 1 :(得分:0)

您想要追溯性地添加一个启用了自动增量的标识列。

查询看起来像这样:

ALTER TABLE city ADD id INT NOT NULL AUTO_INCREMENT KEY

但是我不确定是否会返回并为您填写所有Id,您可能需要编写一个proc或其他简单查询来填充它们,但是这将为您提供具有该功能的列你想要前进。

答案 2 :(得分:0)

如果表目前没有按城市名称排序,最简单的方法是创建一个新表,然后删除旧表并重命名。

CREATE TABLE new (
id INT NOT NULL AUTO_INCREMENT,
city VARCHAR(255) NOT NULL);

INSERT INTO new (city)
SELECT city FROM old_table ORDER BY city;

DROP TABLE old_table;
RENAME TABLE new TO old_table;