Toon posts:

[Interbase] Rare foreignkey errors

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik ben bezig met het maken van een database in interbase.
Nu werkt alles voor een heel eind, ik heb trigger en allerlij extra dingen erin zitten.

Maar nu wilde ik even gaan testen met wat data, maar krijg nu continu rara foreignkey constraint errors.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CREATE TABLE SPELER (
    NR             INTEGER NOT NULL,
    VOORNAAM       VARCHAR(40) CHARACTER SET NONE,
    ACHTERNAAM     VARCHAR(40) CHARACTER SET NONE,
    STRAAT         VARCHAR(40) CHARACTER SET NONE,
    HUISNUMMER     INTEGER,
    POSTCODE       VARCHAR(6) CHARACTER SET NONE,
    PLAATS         VARCHAR(40) CHARACTER SET NONE,
    GESLACHT       CHAR(1) CHARACTER SET NONE,
    TELEFOONNR     VARCHAR(40) CHARACTER SET NONE,
    VERENIGING     INTEGER NOT NULL,
    GEBOORTEDATUM  DATE
);


CREATE TABLE VERENIGING (
    NR          INTEGER NOT NULL,
    NAAM        VARCHAR(40) CHARACTER SET NONE NOT NULL,
    SECRERATIS  VARCHAR(40) CHARACTER SET NONE,
    STRAAT      VARCHAR(40) CHARACTER SET NONE,
    HUISNUMMER  INTEGER,
    POSTCODE    VARCHAR(6) CHARACTER SET NONE,
    PLAATS      VARCHAR(40) CHARACTER SET NONE,
    TELEFOONNR  VARCHAR(10) CHARACTER SET NONE
);

ALTER TABLE SPELER ADD PRIMARY KEY (NR);
ALTER TABLE VERENIGING ADD PRIMARY KEY (NR);

ALTER TABLE SPELER ADD FOREIGN KEY (VERENIGING) REFERENCES VERENIGING (NR) ON DELETE CASCADE;


Dit is mijn code (gegenereerd door ibexpert).


ik krijg deze error:
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "INTEG_7" on table "SPELER".


Dit zijn de twee tabellen met de relatie er tussen waar het in fout gaat.

[ Voor 3% gewijzigd door Verwijderd op 16-05-2004 19:33 ]


  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 20:34

Delphi32

Heading for the gates of Eden

Zit er toevallig (test-)data in je tables die niet aan de nieuwe constraints voldoet?
Gebeurt deze error ook als je een lege database aanmaakt?

Verwijderd

Even een paar opmerkingen:
1. Benoem je constrains, PK's en FK's, zodat je foutmelding duidelijker is;
2. Het is niet verstandig cascade delete's te gebruiken.

Waarschijnlijk probeer je een speler (testdata) toe te voegen, zonder dat je een vereniging hebt toegevoegd (of je refereert naar een vereniging die niet bestaat.)

-Rémy