是否可以在插入之前将id插入数据库中

时间:2011-07-23 13:59:00

标签: php postgresql pdo

我在PHP中使用PDO和PostgreSQL。

我会让我的用户上传文件。

我想将记录ID添加到已保存的图像中。

是否可以在插入数据库之前获取(或保留)记录ID。

我认为这不可能只是想确定。

2 个答案:

答案 0 :(得分:8)

是的,您应该使用postgres函数nextval来获取序列中的下一个值。查看表的id列中的默认值,它应包含对所用序列的nextval调用。

例如,如果表格如下所示:

image_id bigint not null default nextval('image_image_id_seq'::regclass)
data bytea not null

您可以致电:

SELECT NEXTVAL('image_image_id_seq') ;

将“保留”您以后使用的ID:

INSERT INTO image (image_id, data) VALUES (?, ?) ;

答案 1 :(得分:1)

你也可以这样做:

BEGIN
INSERT RETURNING
get id
rename file
COMMIT