Q:

One column (boolean) defines the other (boolean) but not vice versa

Let's assume life is not only existent on earth but there are also other living things in the universe. I have a table that shows all kinds of species of the whole world
+----+---------------+-------+-------+
| id | name          | green | forgn |
+----+---------------+-------+-------|
|  1 | belgian horse | false | false |
|  2 | polar bear    | false | false |
|  3 | andromeda dog | true  | true  |
|  4 | cosmos cat    | true  | true  |
|  5 | amazon parrot | true  | false |
...

We also know that every extraterrestrial being (in this case andromeda dog and cosmos cat) has a green color. So I'd like to define a constraint that if forgn is true, green must also be true, but it doesn't apply the other way around, so for example an amazon parrot is a green animal still it doesn't live outside the earth.
I think I should do it somehow using CHECK but I'm not quite sure how.

A:

if you use boolean type then true > false  
In this case you can use 
CREATE TABLE tablename (
..........
CHECK (green >= forgn)
)

