У меня есть следующая таблица: 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, чтобы соответствовать конкретному комментарию, чтобы я мог его удалить, изменить и т.д. (да, я должен был подумать об этом перед созданием таблицы > _ <).
Спасибо!
Не можете ли вы просто сделать:
ALTER TABLE comments ADD cid INT AUTO_INCREMENT PRIMARY KEY;
Сначала нужно отбросить старый столбец cid
.
Если 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;