Se Ho una tabella in PostgreSQL:Aggiunta di un vincolo non nullo one-out-of-due in postgresql
create table Education (
id integer references Profiles(id),
finished YearValue not null,
started YearValue,
qualification text,
schoolName text,
studiedAt integer references Organizations(id),
primary key (id)
);
Ho bisogno di fare un vincolo in modo che sia schoolName
o studiedAt
necessità di non essere NULL (uno di loro deve avere informazioni in esso).
Come posso fare?
Questo assegno non protegge da entrambi i schoolName e studiato in fase di impostazione, il che penso che l'OP avesse anche in mente. – pithyless
La domanda richiede un invariante che forza almeno su 'schoolName' e' studyAt' contiene alcune informazioni. Ho aggiunto una variante del vincolo che è conforme al tuo commento sebbene non sia d'accordo con l'interpretazione della domanda. –
È un po 'tardi, ma questo è un vincolo XOR in modo che tu possa esprimerlo come "CHECK ((schoolName IS NULL) <> (studyAt IS NULL))" – norcalli