aGGroLadY Geschrieben 30. Januar 2010 Teilen Geschrieben 30. Januar 2010 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'); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
aGGroLadY Geschrieben 30. Januar 2010 Autor Teilen Geschrieben 30. Januar 2010 Problem hat sich gelöst, war aber nix spannendes, sondern ein kleiner Fehler von mir. Beitrag kann auch gerne gelöscht werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.