Изменить строки для увеличения в MySQL - PullRequest
0 голосов
/ 12 октября 2009

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

columns = [id cid comment]

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

строка 1, cid = 0

строка 2, cid = 1

строка 3, cid = 2

и т.д.

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

<?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 соответствовал определенному комментарию, чтобы я мог удалить его, изменить его и т. Д. (Да, я должен был подумать об этом перед созданием таблицы> _ <). </p>

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 октября 2009

Разве вы не можете просто сделать:

ALTER TABLE comments ADD cid INT AUTO_INCREMENT PRIMARY KEY;

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

1 голос
/ 12 октября 2009

Если 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...