我有大约500条记录的mysql表,以及我根据requiremens修改了我的表的方法。但是我有一个表格,其中包含(sale_id,cust_id,Sales_desc bla bla)
等字段我已经为所有500个,,,,,做了一个值('1')的sale_id行,但是我想知道你们的内容,任何人都可以告诉我如何更新sale_id 1到500 ,,, ,,我的意思是说我希望这一行应该从1开始到N ,,,,,但是这个表中已经有一些数据,,,,,我只是想用序列号替换现有的sale_id值(1,2 ,3,4,5- .... n)的 PLZ帮我解决了这个问题......我在等.......
沙希德 emsoftware.in
答案 0 :(得分:3)
这可以解决问题:
UPDATE tableName, (SELECT @id := 0) dm
SET sale_id = (@id := @id + 1)
答案 1 :(得分:1)
听起来你的表中的sale_id应该是表中的主键并设置为自动递增。既然听起来表中已经没有很多数据了,为什么不用sale_id设置重新创建它来为你处理这个,将数据插入新表然后重命名表来淹没它们?
CREATE TABLE `TableNew` LIKE `TableOld`;
ALTER TABLE `TableNew` MODIFY COLUMN `sale_id` INTEGER NOT NULL DEFAULT 0 AUTO_INCREMENT;
INSERT IGNORE INTO `TableNew` (cust_id, Sales_desc, bla, bla) SELECT cust_id, Sales_desc, bla, bla FROM `TableOld`;
RENAME TABLE `TableOld` to `TableOldBackup`;
RENAME TABLE `TableNew` to `TableOld`;
注意:在此答案中给出的insert语句中,您必须指定要复制的所有字段,并从插入中排除sale_id。这样mysql将使用自动递增的值填充sale_id。