我有一个包含以下字段的表:gallery(picID, picTimeStamp, location)
.
我想要的是,当有人将新图片上传到图库时,该位置将获得与获取相同的值picID
(并picID
通过自动增量获取其值)。
我试过了:
"INSERT INTO gallery(picID, picTimeStamp, location) VALUES (null,'.time().',picID)"
但它不工作。我没有收到任何错误,该位置总是有一个零。
谢谢!
您可能应该像这样使用触发器
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 数字仅在插入记录后设置。对不起!
你的表应该是这样的:
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,你不需要输入这些。