Sql 更新/插入具有两个索引的联接表
我有一个PostGIS数据库,其中包含带有位置点的实体a和带有面积多边形的实体B 我有一个连接表C,它基本上跟踪谁在哪里,我想更新它。它是一个简单的计数器,可以递增,没有进一步的依赖关系 很容易找到谁在哪里:Sql 更新/插入具有两个索引的联接表,sql,postgresql,postgis,Sql,Postgresql,Postgis,我有一个PostGIS数据库,其中包含带有位置点的实体a和带有面积多边形的实体B 我有一个连接表C,它基本上跟踪谁在哪里,我想更新它。它是一个简单的计数器,可以递增,没有进一步的依赖关系 很容易找到谁在哪里: SELECT a.id, b.id FROM a, b WHERE ST_Contains(b.poly, a.location); 但是有可能在纯SQL中更新表C吗?它的结构很简单: Column | Type |
SELECT a.id, b.id FROM a, b WHERE ST_Contains(b.poly, a.location);
但是有可能在纯SQL中更新表C吗?它的结构很简单:
Column | Type | Modifiers
--------------+----------+----------------------------------------------------------------
id | integer | not null
a_id | integer |
b_id | integer |
counter | smallint | not null
我想要的是以固定的间隔运行一个查询,根据位置增加计数器。但是,这可能是第一个实例,因此不能保证匹配行a_id,b_id已经存在
可能吗?计数器的值是如何确定的?基于a_id和b_id组合的唯一值?不,它只是一个简单的计数器。我想以固定的时间间隔运行一个查询,只需更新它。每小时思考+1。计数器不应该只是一个串行类型,然后自动递增吗?c.id是如何确定的?c.id只是表的主键。我不知道你说的串行类型是什么意思,但我知道我想增加和减少计数器,有时会超过1,这就是为什么我使用smallint类型。串行只是一种自动递增的int数据类型。