我有一个服务器和几个客户端应用程序。必须先启动服务器,然后才能启动客户端。如果它们不存在,客户端然后在数据库中创建表。
当服务器启动时(某些表不存在)并且以下查询给了我一个exception
:
UPDATE recipes SET lock = null
WHERE lock IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
Relation >>recipes<< does not exists
我想exception
通过检查此表是否存在来避免这种情况。
UPDATE recipes SET lock = null
WHERE lock IS NOT NULL AND
WHERE EXISTS (
SELECT 1
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'recipes'
);
Run Code Online (Sandbox Code Playgroud)
但这query
不起作用。你能告诉我我的错误在哪里吗?
ype*_*eᵀᴹ 15
您需要一个 pl/pgsql 块来执行以下操作IF
:
DO $$
BEGIN
IF EXISTS
( SELECT 1
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'recipes'
)
THEN
UPDATE recipes
SET lock = NULL
WHERE lock IS NOT NULL ;
END IF ;
END
$$ ;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24863 次 |
最近记录: |