2

在此处输入图像描述我想实现一个停车场应用程序,所以当司机停放他的车时,有一个有 5 个或更多停车场的车库,车库中的下一个空闲位置应该分配给他。

所以我有一个带有 5 个或更多插槽的桌面车库当我更新 updategarage set free = 0,set car = 1 (car_id) 时遇到问题,然后所有空闲插槽都已更新我如何限制只更新第一个空闲行?

谁能帮我

预先感谢(错误)谢谢我有车库表,每个级别都有级别和插槽当我停车时我只想更新免费插槽

表车库

4

1 回答 1

7

您需要指定要更新的记录,否则数据库将更新所有记录。如果您正在寻找专门更新一条记录,您可能希望PRIMARY KEY使用WHERE子句引用它。

如果你没有PRIMARY KEY为你的表分配一个,你可以使用 SQLite 的rowid列。像这样的东西:

SELECT rowid FROM garage WHERE free = 1;

然后,假设您确定地点 5 对汽车 42 是免费的:

UPDATE garage SET free = 0, car = 42 WHERE rowid = 5;

如果您愿意,可以将这两个步骤组合成一个查询:

UPDATE garage SET free=0, car=42 WHERE rowid IN (SELECT rowid FROM garage WHERE free=1 LIMIT 1);
于 2013-07-24T00:28:33.113 回答