我想实现一个 parking 场应用 所以有一个带5个或更多 parking 位的车库 当司机 parking 时,车库中的下一个空闲位置应该分配给他。
所以我有一个带 5 个或更多插槽的 table 上车库 我更新的时候有问题 update garage set free = 0, set car = 1 (car_id) 然后更新所有空闲插槽我怎么能限制只更新第一个空闲行?
谁能帮帮我
提前致谢(假) 谢谢 当我停放汽车时,我有带级别和每个级别插槽的车库表我只想更新空闲插槽
最佳答案
您需要指定要更新的记录,否则数据库将更新所有 记录。如果您希望专门更新一条记录,您可能需要使用 WHERE
子句引用其 PRIMARY KEY
。
如果您还没有为您的表分配PRIMARY KEY
,you could use SQLite's rowid
column.像这样:
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);
关于SQLITE 更新、限制、大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823018/