SQLITE更新,限制,案例

时间:2013-07-24 00:01:46

标签: sqlite limit

enter image description here我想实施停车场申请 所以有一个车库有5个或更多的停车场 当司机停放车辆时,车库中的下一个空位应该分配给他。

所以我有一个带5个或更多插槽的桌子车库  我更新时有问题                    更新车库设置free = 0,设置car = 1(car_id)然后所有空闲插槽都更新我如何才能限制只更新第一个空闲行?

任何人都可以帮助我

提前谢谢(假) 谢谢 当我停放一辆车时,我有车库桌,每层都有水平和插槽我只想更新免费插槽

table garage

1 个答案:

答案 0 :(得分:7)

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

如果您没有为表格指定PRIMARY KEYyou could use SQLite's rowid column.就像这样:

SELECT rowid FROM garage WHERE free = 1;

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

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);