我有下表: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;)。
之前谢谢!
答案 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
列。