修改MySQL中的行以增加

时间:2009-10-11 20:48:11

标签: php mysql

我有下表: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对应一个特定的评论,所以我可以删除它,修改它等等(是的,我应该想到这个在创建表&gt; _&lt;)。

之前

谢谢!

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

你不能这样做:

ALTER TABLE comments ADD cid INT AUTO_INCREMENT PRIMARY KEY;

您需要先删除旧的cid列。