![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Is there a way to define a foreign key for the values of an array? For example, if table T1 is having a colum A which is defined as integer[] can I define a foreign key in order to force each value to be a pointer (index) to a row in a table T2? If yes, how? Is there any shortcomings to this approach? Thanks, Daniel Savard --- Daniel Savard dsavard (AT) cids (DOT) ca ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo (AT) postgresql (DOT) org |
#3
| |||
| |||
|
|
- add CHECK( test_array( yourcolumn )) in your table definition - create function test_array which takes an array and looks if all its elements are in your table T2, I do something like comparing the length of the array to SELECT count(1) FROM T2 WHERE key IN array |
#4
| |||
| |||
|
| You can't express it directly with a CHECK constraint but you can do this : - add CHECK( test_array( yourcolumn )) in your table definition - create function test_array which takes an array and looks if all its elements are in your table T2, I do something like comparing the length of the array to SELECT count(1) FROM T2 WHERE key IN array You can do it other ways but you'll have to use a function. |
![]() |
| Thread Tools | |
| Display Modes | |
| |