Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

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

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group