Thread: Is it possible to create a CHECK constraint for my use case?
Hi, Our Production server is running PostgreSQL v8.2.22 on CentOS5.2. We want to enable a specific CHECK constraint for our application table as explained below: There are 2 columns in the table: "managertype" numeric(1) and "managerid" numeric(10). "managertype" accepts only 2 valid values, either '1' or '2'. managertype | managerid --------------------------------- 1 | null values NOT allowed 2 | null values allowed --------------------------------- We want to enable a CHECK constraint based on 2 columns data in the table in such a way that if "managertype" is 1, then null values are not allowed in "managerid" column. In other words, I want to create a CHECK constraint something like this: IF (managertype = 1) THEN managerid IS NOT NULL. Is it possible to create a CHECK constraint for my use case explained above? Regards, Gnanam
Gnanakumar, 31.01.2012 09:11: > Hi, > > Our Production server is running PostgreSQL v8.2.22 on CentOS5.2. You know that 8.2 is "end-of-live"? http://www.postgresql.org/support/versioning/ > There are 2 columns in the table: "managertype" numeric(1) and "managerid" > numeric(10). "managertype" accepts only 2 valid values, either '1' or '2'. > > managertype | managerid > --------------------------------- > 1 | null values NOT allowed > 2 | null values allowed > --------------------------------- > > We want to enable a CHECK constraint based on 2 columns data in the table in > such a way that if "managertype" is 1, then null values are not allowed in > "managerid" column. In other words, I want to create a CHECK constraint > something like this: IF (managertype = 1) THEN managerid IS NOT NULL. > > Is it possible to create a CHECK constraint for my use case explained above? Something like this: check ( (managertype = 2) or (managertype = 1 and managerid is not null) ) Not sure if the condition (managertype = 2) is actually needed, if the managertype is already constrained to 1/2 but I can'ttest it right now. Thomas
On Tue, 31 Jan 2012 13:41:00 +0530, Gnanakumar wrote: > Hi, > > Our Production server is running PostgreSQL v8.2.22 on CentOS5.2. We > want to enable a specific CHECK constraint for our application table as > explained below: > > There are 2 columns in the table: "managertype" numeric(1) and > "managerid" numeric(10). "managertype" accepts only 2 valid values, > either '1' or '2'. > > managertype | managerid --------------------------------- > 1 | null values NOT allowed 2 | null values > allowed > --------------------------------- > > We want to enable a CHECK constraint based on 2 columns data in the > table in such a way that if "managertype" is 1, then null values are not > allowed in "managerid" column. In other words, I want to create a CHECK > constraint something like this: IF (managertype = 1) THEN managerid IS > NOT NULL. > > Is it possible to create a CHECK constraint for my use case explained > above? Production server? Bollocks. It's homework. Look it up.