我正试图将所有应该具备全或无效的交易包装在BEGIN和COMMIT中,但我不确定在以下情况下该如何实现。
我有3个表,一个用于图像,一个用于相册,一个用于它们之间的关系,即album_images。系统的运作方式是用户可以一次操作创建一个相册并填充它的图片。SQL如下:
我有3个表,一个用于图像,一个用于相册,一个用于它们之间的关系,即album_images。系统的运作方式是用户可以一次操作创建一个相册并填充它的图片。SQL如下:
BEGIN;
INSERT INTO albums [...]; -- Create a new album row
SELECT id AS album_id FROM albums WHERE [...]; -- Get that rows ID
-- Now use album_id in the next statement
INSERT INTO album_images (album_id, image_id) [...];
COMMIT;
这可能是一个常见的问题,我不确定该搜索什么,也没有在文档中找到解决方案。
lastval
是特定于事务的,还是可能被另一个并发事务更改? - Tobi Akinyemi