2013-07-24 52 views
1

enter image description here我想实现一个停车场应用 所以有5个以上的停车场 当驾驶员停放了他的车在车库里的一个空闲插槽应该分配给他一个车库。SQLITE更新,限制的情况下

所以我有具有5首或更多个狭槽 我有问题的表车库当我更新 更新车库自由设置= 0,设定轿厢= 1(car_id),则所有的空闲时隙是更新如何限制只更新第一个空行?

谁能帮我提前

感谢(假) 感谢 我有水平和槽在每一个级别的时候我停一辆车,我想只更新空闲插槽车库表

table garage

+0

您需要有一个WHE带有标准的RE子句引用您想要更新的行。 – andrewb

+0

我唯一的标准是布尔真或假(免费或不免费),所以可以有多行免费,所以我不能真正限制它只是一些限制条件将appriciated – JahShaka

+0

显示您的表结构。听起来好像没有正确设计。 – dispake

回答

7

您需要指定要更新哪个或哪些记录,否则数据库将更新全部。如果您希望专门更新一条记录,则可能需要使用WHERE条款引用其PRIMARY KEY

如果您还没有分配给你的表PRIMARY KEYyou 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); 
+0

是的,这是明确的,但我想动态分配插槽,所以我没有给槽ID,但只有免费(真,假)列,所以UPDATE和LIMIT将是一个选项,但似乎一些额外的努力,使这个sqlite – JahShaka

+6

在我看来,我想知道我打电话给UPDATE的停车位ID,但假设你不在意,可以结合这些查询:'UPDATE garage SET free = 0,car = 42 WHERE rowid IN(SELECT rowid FROM garage WHERE free = 1 LIMIT 1);' – rutter

+0

好吧多数民众赞成在此谢谢 – JahShaka

相关问题