2016-02-05 63 views
0

我需要從表中刪除一行,其中沒有主鍵。不要責怪我,Hibernate創造它們。我無法使用OID或CTID。幸運的是,我有整行數據,我使用它。刪除一個類型轉換行

這工作:

DELETE FROM public.item WHERE public.item='(4,A015GV,444,s4)'::item; 

這也適用於:

DELETE FROM public.item WHERE item='(5,A015GH,555,s5)'::public.item; 

但是,如果模式被提及的3倍,這是工作。爲什麼?

DELETE FROM public.item WHERE public.item='(5,A015GH,555,s5)'::public.item; 
+2

它不是架構中提到的3倍,在你別名列,但你沒有'public'表的別名。嘗試'刪除從public.item thealias WHERE thealias.item ='(5,A015GH,555,s5)':: public.item;' – JustMe

+3

@Izzy是第一個真正工作的案例? 「DELETE FROM public.item WHERE public.item ='(4,A015GV,444,s4)':: item;」 –

+0

我時不時工作。不是全部。 –

回答

0

只需添加文本::

DELETE FROM public.item WHERE item::text='(5,A015GH,555,s5)'; 
+0

它工作,但爲什麼 DELETE FROM public.item WHERE public.item :: text ='(5,A015GH,555,s5)'; 或 DELETE FROM public.item WHERE(public.item):: text ='(5,A015GH,555,s5)'; 不? –

+0

用(item):: text替換(public.item):: text –