Изменить строки для увеличения в MySQL

0

У меня есть следующая таблица: http://kimag.es/share/59074317.png

columns = [id cid comment]

Мне нужно, чтобы значения cid (comment id) возрастали на 1 для каждой строки в таблице.

строка 1, cid = 0

строка 2, cid = 1

строка 3, cid = 2

и др.

Теперь cid = id из-за этого php script:

<?php
$con = mysql_connect("localhost","MYUSER","MYPASS");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$id=0;
$totalrows=23207; 

mysql_select_db("MYDB", $con);
while($id < $totalrows)
{
$sql = "UPDATE comments SET cid=$id WHERE id=$id";
mysql_query($sql,$con);
$id++;
}

mysql_close($con);
?>

Может ли кто-нибудь предоставить соответствующий запрос mysql?

Примечание. У меня нет "отдельных ключей"... и мне нужен cid, чтобы соответствовать конкретному комментарию, чтобы я мог его удалить, изменить и т.д. (да, я должен был подумать об этом перед созданием таблицы > _ <).

Спасибо!

Теги:

2 ответа

1
Лучший ответ

Не можете ли вы просто сделать:

ALTER TABLE comments ADD cid INT AUTO_INCREMENT PRIMARY KEY;

Сначала нужно отбросить старый столбец cid.

  • 0
    Это сработало = D Спасибо!
1

Если cid является первичным ключом вашей таблицы, вы можете указать AUTO_INCREMENT. Который автоматически присваивает уникальные значения всем вставленным новым строкам:

-- when use NULL as value for id mysql automatically set next unique number
INSERT INTO table (cid, id, comment) VALUES (NULL, ?, ?); 

И вы также можете изменить существующие данные:

ALTER TABLE table CHANGE cid cid INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню