0

我有一个包含以下字段的表:gallery(picID, picTimeStamp, location).

我想要的是,当有人将新图片上传到图库时,该位置将获得与获取相同的值picID(并picID通过自动增量获取其值)。

我试过了:

"INSERT INTO gallery(picID, picTimeStamp, location) VALUES (null,'.time().',picID)"

但它不工作。我没有收到任何错误,该位置总是有一个零。

谢谢!

4

2 回答 2

0

您可能应该像这样使用触发器

CREATE TRIGGER trigger_name BEFORE INSERT ON gallery FOR EACH ROW 
BEGIN 
   DECLARE next_id INT; 
   SET next_id = (SELECT AUTO_INCREMENT FROM gallery WHERE TABLE_NAME='gallery'); 
   SET NEW.location=next_id; 
END 

编辑:应该在插入触发器之后而不是之前,因为 auto_increment 数字仅在插入记录后设置。对不起!

于 2012-08-29T16:07:59.203 回答
-1

你的表应该是这样的:

id               |  int        |  primary key/autoincrement
order            |  int        |  index
picTimeStamp     |  timestamp

然后如果您想在下面创建一个新条目,请通过 GET 传递订单号:

function createBelow(){
if(isset($_GET["orders"])){  
    $orders = $_GET["orders"];
    $query = "UPDATE links SET orders=orders+1 WHERE orders>$orders ORDER BY     orders DESC"; 
    mysql_query($query);
    $query = "INSERT INTO `mydb`.`mytable` (`orders`) VALUES ($orders+1);";
    mysql_query($query);
}

}

默认值会处理 id 和 timestamp,你不需要输入这些。

于 2012-08-29T16:08:06.077 回答