Re: CHECK constraint on multiple tables
От | Ries van Twisk |
---|---|
Тема | Re: CHECK constraint on multiple tables |
Дата | |
Msg-id | 24123985-9812-49FE-B422-31E7AC963758@rvt.dds.nl обсуждение исходный текст |
Ответ на | CHECK constraint on multiple tables (Mario Splivalo <mario.splivalo@megafon.hr>) |
Ответы |
Re: CHECK constraint on multiple tables
|
Список | pgsql-sql |
can't you solve it creating a reference between the tables? Ries On Sep 14, 2009, at 8:24 AM, Mario Splivalo wrote: > I have two tables, tableA and tableB: > > CREATE TABLE tableA (idA integer primary key, email character varying > unique); > CREATE TABLE tableB (idB integer primary key, email character varying > unique); > > Now, I want to create check constraint in both tables that would > disallow records to either table where email is 'mentioned' in other > table. > > If CHECK constraints supported SUBSELECTS, I could write: > > ALTER TABLE tableA ADD CONSTRAINT tableA_chk CHECK > (email NOT IN (SELECT email FROM tableB)); > > Unfortunatley, postgres won't allow me to do so. > > Now, i could create function, check_for_email, that would return > TRUE if > email is mentioned in either table, and then call that function when > creating a check constraint. > > Or I could add separate table, emails, like this: > > CREATE TABLE emails (email_id integer primary key, email character > varying unique) > > And then replace 'email' column in tables tableA and tableB with > 'email_id' that would be foreign key refference to the emails table. > > I could, also, write functions for inserting data to the tableA and > tableB tables. > > What would be the best approach to solve the problem I have? Could I > use > rules on insert to help me? > > Mario > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql regards, Ries van Twisk ------------------------------------------------------------------------------------------------- tags: Freelance TYPO3 Glassfish JasperReports JasperETL Flex Blaze-DS WebORB PostgreSQL DB-Architect email: ries@vantwisk.nl web: http://www.rvantwisk.nl/ skype: callto://r.vantwisk Phone: +1-810-476-4196 Cell: +593 9901 7694 SIP: +1-747-690-5133
В списке pgsql-sql по дате отправления: