Re: unique across two tables
От | tv@fuzzy.cz |
---|---|
Тема | Re: unique across two tables |
Дата | |
Msg-id | 9928b10d5090b793d6ae56dcd62f0fc7.squirrel@sq.gransy.com обсуждение исходный текст |
Ответ на | unique across two tables (Tarlika Elisabeth Schmitz <postgresql4@numerixtechnology.de>) |
Список | pgsql-general |
> I have two tables, town and townalias, the latter containing alternative > town names. > I would like to ensure that a town name is unique per > country-region across the two tables. > > Can I do this with a constraint ot do I need to implement the logic via > trigger? You can't have a constraint spreading multiple tables. And fixing this using a trigger is harder than it looks, because a trigger does not see uncommited changes made by other sessions. So for example this will be hard to catch: Session A: INSERT INTO town(name) VALUES ('Chicago'); Session B: INSERT INTO town(name) VALUES ('Chicago'); Session A: COMMIT; Session B: COMMIT; What I'd do is I'd keep the primary name in the 'townalias' table too, maybe with a 'primary=true' flag. That way you can use traditional UNIQUE constraint. regards Tomas
В списке pgsql-general по дате отправления: