2016-04-08 7 views
0

Ben şu masayı Ne yapmak istediğiniz bir değere NULL gelen kimliği değiştirmek için bu tablodaki satır güncellemek bazen iseUPDATE sorgusunun hata vermesine nasıl neden olabilirim? Benim veritabanında

 Table "public.session" 
    Column |  Type  | Modifiers 
-----------+---------------+----------- 
sessionid | character(10) | not null (primary key) 
device | character(5) | 
userid | character(5) | (foreign key, can be null) 

var. Ancak, eğer userid ISNT null ise, bir hata atmak istiyorum, böylece arka uç sunucusunda yakalayabilirim. Sorun Userid NULL olduğunda bu sorgu başarısız doesnt

update session set userid = $1 where sessionID = $2 and userid = NULL; 

: gibi Halen benim sorgu görünüyor. Başarısız olmasına nasıl sebep olurum?

+2

Sadece güncellenen satır sayısına bakabilir misiniz? 0 ise, hatayı kod olarak atın. – markwatsonatx

+0

Kesinlikle bir tetikleyicide yapılabilir ... Buna rağmen, bunu başarmanın en etkili veya kolay yolu olmayabilir. –

+0

@VladimirBaranov evet haklısınız gibi görünüyor. Postgres için çok yeni ve tetikleyicileri duymamıştım. Teşekkürler –

cevap

0

@Mark Watson adlı kullanıcının yorumunu takip ettikten sonra, güncellenen satır sayısını kontrol ettim. Bu tam olarak istediğim şey değil ama tetikleyiciyi yazmaktan kesinlikle daha kolay.