Zum Inhalt springen

Konflikt mit Primary Key


aGGroLadY

Empfohlene Beiträge

Hallo Leute,

wollte meine Datenbank mit Inhalt befüllen und bekomme folgende Fehlermeldung: ERROR: duplicate key value violates unique constraint "bestellung_pkey"

Liegt wohl daran, das ich in der Tabelle Position mehrmals die Bestellnummer verwende, aber eine Bestellung hat nun mal mehrere Positionen ^^

Ich weiß aber nicht wie ich das ändern kann, bzw. Duplikate zulassen kann.

Hier mal mein Schema und die Insert-Befehle:

/* Erzeugen der Datenbank mit den entsprechenden Tabellen */


/* Erzeugen der Datenbank lieferant */


CREATE database lieferant;



/* Erzeugen der Tablle artikel mit den Attributen artikel_nr(PK), bezeichnung, listenpreis, bestand, mindestbestand, verpackung. */


CREATE table artikel

(artikel_nr character varying(4) NOT NULL,

bezeichnung character varying (50), 

listenpreis money, 

bestand integer, 

mindestbestand integer, 

verpackung character varying(20),

CONSTRAINT pk_artikel

     PRIMARY KEY (artikel_nr));


/* Erzeugen der Tablle kunde mit den Attributen kunden_nr(PK), name, strasse, plz, ort. */


CREATE table kunde

(kunden_nr integer,

name character varying(30), 

strasse character varying(30), 

plz integer, 

ort character varying(20),


CONSTRAINT pk_kunde

     PRIMARY KEY (kunden_nr));


/* Erzeugen der Tablle bestellung mit den Attributen bestell_nr(FK), kunden_nr(FK), bestelldatum, lieferdatum, rechnungsbetrag. bestell_nr + kunden_nr = PK */


CREATE table bestellung

(bestell_nr integer NOT NULL,

kunden_nr integer, 

bestelldatum date, 

lieferdatum date, 

rechnungsbetrag money,

CONSTRAINT pk_bestellung

     PRIMARY KEY (bestell_nr),

CONSTRAINT fk_bestellung

     FOREIGN KEY (kunden_nr) REFERENCES kunde (kunden_nr));


/* Erzeugen der Tablle kontodaten mit den Attributen kunden_nr(FK), konto_inhaber, blz, konto_nr. */


CREATE table kontodaten

(kunden_nr integer, 

kontoinhaber character varying(30), 

blz integer, 

konto_nr integer,


CONSTRAINT fk_kontodaten

     FOREIGN KEY (kunden_nr) REFERENCES kunde (kunden_nr));



/* Erzeugen der Tablle position mit den Attributen bestell_nr(FK), artikel_nr(FK), bestellmenge, liefermenge, gesamtpreis. bestell_nr + artikel_nr = PK */


CREATE table position

(bestell_nr integer NOT NULL, 

artikel_nr character varying(4), 

bestellmenge integer, 

liefermenge integer, 

gesamtpreis money,


CONSTRAINT pk_position_fk

     PRIMARY KEY (bestell_nr, artikel_nr),

CONSTRAINT fk_position1

     FOREIGN KEY (bestell_nr) REFERENCES bestellung (bestell_nr),

CONSTRAINT fk_position2

     FOREIGN KEY (artikel_nr) REFERENCES artikel (artikel_nr));

/* Befüllung der Datenbank mit Musterdaten */


/* Befüllung der Tabelle bestellung */

INSERT INTO "haendler"."bestellung" ("bestell_nr", "kunden_nr", "bestelldatum", "lieferdatum", "rechnungsbetrag") VALUES ('9600', '101', '2009-11-20', '2009-12-01', '199.00');

INSERT INTO "haendler"."bestellung" ("bestell_nr", "kunden_nr", "bestelldatum", "lieferdatum", "rechnungsbetrag") VALUES ('9601', '104', '2009-11-21', '2009-12-02', '79.98');

INSERT INTO "haendler"."bestellung" ("bestell_nr", "kunden_nr", "bestelldatum", "lieferdatum", "rechnungsbetrag") VALUES ('9602', '105', '2009-11-10', '2009-11-15', '33.99');

INSERT INTO "haendler"."bestellung" ("bestell_nr", "kunden_nr", "bestelldatum", "lieferdatum", "rechnungsbetrag") VALUES ('9603', '103', '2009-12-04', '2009-12-11', '244.99');


/* Befüllung der Tabelle artikel */

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('A001', 'Kaffeemaschine', '150.00', '100', '10', 'Karton');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('A002', 'Espressomaschine', '199.00', '120', '10', 'Karton');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('A003', 'Wasserkocher', '30.00', '50', '5', 'Karton');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('B001', 'Filtertüten', '5.99', '50', '5', 'Tüten');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('B002', 'Entkalker', '3.99', '25', '5', 'Flasche');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('C001', 'Toaster', '39.99', '130', '10', 'Karton');

INSERT INTO "haendler"."artikel" ("artikel_nr", "bezeichnung", "listenpreis", "bestand", "mindestbestand", "verpackung") VALUES ('C002', 'Eierkocher', '25.00', '40', '3', 'Karton');


/* Befüllung der Tabelle kontodaten */

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('100', ' ', '72050000', '7843');

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('101', 'Müller Mariane', '72050000', '8432');

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('102', 'Schubert Linda', '43020000', '1265');

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('103', 'Ullmann Alexander', '87310000', '8740');

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('104', 'Jacobs Ben', '83209210', '7403');

INSERT INTO "haendler"."kontodaten" ("kunden_nr", "kontoinhaber", "blz", "konto_nr") VALUES ('105', 'Herta Marion', '32050000', '9043');


/* Befüllung der Tabelle kunde */

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('100', 'Meier Peter', 'Hauptstrasse 17', '86150', 'Augsburg');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('101', 'Müller Mariane', 'Postweg 10', '86134', 'Augsburg');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('102', 'Schubert Linda', 'Rotkäppchenweg 7', '86199', 'Augsburg');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('103', 'Ullmann Alexander', 'Karlstraße 16', '86150', 'Augsburg');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('104', 'Jacobs Ben', 'Dorfstraße 143', '80432', 'München');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('105', 'Herta Paul', 'Landgrafstraße 23b', '42384', 'Stettingen');

INSERT INTO "haendler"."kunde" ("kunden_nr", "name", "strasse", "plz", "ort") VALUES ('106', 'Richard Sabine', 'Von-der-Tann-Straße 8', '73293', 'Leipzig');


/* Befüllung der Tabelle position */

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9600', 'A002', '1', '1', '199.00');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9601', 'C001', '2', '2', '79.98');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9602', 'A003', '1', '1', '30.00');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9602', 'B002', '1', '1', '3.99');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9603', 'A001', '1', '1', '150.00');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9603', 'A003', '1', '1', '30.00');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9603', 'C001', '1', '1', '39.99');

INSERT INTO "haendler"."position" ("bestell_nr", "artikel_nr", "bestellmenge", "liefermenge", "gesamtpreis") VALUES ('9603', 'C002', '1', '1', '25.00');

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...