插入字段另一个字段的a_i值

时间:2012-08-29 15:20:26

标签: php mysql

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

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

我试过了:

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

但它不起作用。我没有得到任何错误,位置总是只有零。

谢谢!

2 个答案:

答案 0 :(得分: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 number。抱歉,那个!

答案 1 :(得分:-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,你不要输入这些。