我有一个包含以下字段的表:gallery(picID, picTimeStamp, location)
。
我想要的是,当有人将新图片上传到图库时,该位置将获得picID
获得的相同值(并且picID
通过自动增量获得其值。)
我试过了:
"INSERT INTO gallery(picID, picTimeStamp, location) VALUES (null,'.time().',picID)"
但它不起作用。我没有得到任何错误,位置总是只有零。
谢谢!
答案 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,你不要输入这些。