我该如何执行
select * from my_table
但如果my_table不存在,请避免抛出错误
有可能吗?
更新:我在Odoo中工作,当用户按下按钮时我创建了表格,所以在我的模块安装时,第一次表格将不存在,我不希望看到错误。
我使用:
在python中解决了它try: cr.execute(my_query)
expetion: pass
如果我不够明确,我很抱歉,这是我的第一个问题:P
答案 0 :(得分:0)
你在某种功能中运行它吗?如果没有,这整个问题毫无意义......如果是 - 只需尝试捕捉错误,如下所述:http://www.postgresql.org/docs/9.1/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING
您需要捕获42P01 undefined_table
SQLSTATE。
所以在你的功能中你可以做到:
BEGIN
SELECT * FROM sometable
EXCEPTION
WHEN undefined_table THEN
-- Do something
WHEN others THEN
-- Do something else
END;
答案 1 :(得分:0)
作为附加说明(与Postgresql无关),当您启动Odoo服务器时,应确保设置-u标志以确保Odoo ORM应用您的odoo自定义。这可确保您所做的任何修改(例如表创建/修改)都应用于Postgresql DB。
所以,从CLI:
openerp-server -u module_name
或
openerp-server -u all
更新所有模块