RE: [pgsql-de-allgemein] Doppeleinträge in der postg res DB mit unique vermeiden
Hallo Guido,
>>Bist Du sicher, daß Du das wirklich willst? Für mich klingt das nach einer
ziemlich schlechten Idee. Außer natürlich, Du kannst GARANTIEREN, daß Du nie
>>eine Person aufnehmen willst, die den Bedingungen nicht genügt.
>>Nur so aus Interesse: warum soll das so sein?
Na, ich will Doppeleinträge vermeiden. Vielleicht sollte das Feld title der
anderen t_Books Tabelle auch noch in CONSTRAINT UNIQUE
miteinbezogen werden. Das wäre dann schon ein sehr großer Zufall, wenn es
tatsächlich 2 identische Autorennamen, Nach- Und Vorname, und noch
2 identische Buchtitel gäbe, wodurch ein Autor dann durch dieses UNIQUE
eleminiert würde.
Die t_books sieht so aus:
create table t_books
(
bookid int4 primary key
default nextval('s_books'),
authorid int4 not null
references t_authors(authorid)
on delete cascade,
FOREIGN KEY (authorid) REFERENCES t_authors (authorid) ON UPDATE
CASCADE ON DELETE CASCADE,
title varchar(127) not null,
subtitle varchar(255)
);
On 11/10/06, Andreas Bauer <andreas_bauer(at)arcor(dot)de> wrote:
> Hallo NG,
>
> um Doppeleinträge in der postgres DB zu vermeiden, habe ich in meinem
> create table eingefügt:
> CONSTRAINT con1 UNIQUE (lastname,firstname)
>
> Wie kann ich den UNIQUE Befehl schreiben, dass die Datensätze nicht
> doppelt sind, bei denen die Bedingung erfüllt ist, dass der lastname
> "und" der firstname identisch sind, also wenn in einer Zeile Bauer
> Andreas als last- und firstname steht, dass Bauer und Andreas als
> first- und lastname nicht noch mal in einer Zeile der Tabelle
> eingetragen wird. Es kann ja auch eine andere Person den gleichen
> lastname, aber einen anderen firstname haben. Da würde der CONSTRAINT
> con1 UNIQUE (lastname,firstname) ja schon den lastname nicht zulassen,
> oder lieg ich da falsch? Geht das überhaupt mit UNIQUE, mit einer &
> Verknüpfung von den Feldern?
> Die pq-query Fehlermeldung von php:
> Warning: pg_query() [function.pg-query]: Query failed: ERROR:
> duplicate key violates unique constraint "con1" in Kann man die
> abschalten?
>
>
> Grüße
> Andreas
>
>
>
>
> create table t_authors
> (
> authorid int4 primary key
> default nextval('s_authors'),
> lastname varchar(31) not null,
> firstname varchar(31) not null,
> CONSTRAINT con1 UNIQUE (lastname,firstname)
>
> );
Grüße
Andreas
Home |
Main Index |
Thread Index