17. december 2000 - 23:49Der er
6 kommentarer og 1 løsning
Delete cascade
Jeg leder efter syntaksen til en delete sætning der udover at slette den ønskede post, også sletter de poster i andre tabeller der har fremmednøgler til den ønskede post. Og hvis disse har fremmednøgler, skal de også slettes osv.
Jeg har ladet mig fortælle at dette kan gøres vha. \'cascade\', men jeg kan ikke finde en syntaks for dette....
Række: En lille test på gode gamle scotts tabeller :
SQL> delete dept where deptno=20; delete dept where deptno=20 * ERROR at line 1: ORA-02292: integrity constraint (SCOTT.EMP_FOREIGN_KEY) violated - child record found
SQL> set constraint emp_foreign_key deferred;
Constraint set.
SQL> delete dept where deptno=20;
1 row deleted.
Ellers mener jeg(er ikke helt sikker) at tabellen skal oprettes med en constraint: En lille test : CREATE TABLE test1 (c1 DATE, c2 VARCHAR2(2), test NUMBER, CONSTRAINT test1 PRIMARY KEY (c1,c2,test));
CREATE TABLE test2 (c1 DATE, c2 VARCHAR2(2), test NUMBER, CONSTRAINT test2 FOREIGN KEY (c1,c2,test) REFERENCES test1(c1,c2,test) ON DELETE CASCADE);
Sorry at jeg først skriver nu, men du fandt jo heldigvis selv ud af hvad du manglede! Jeg har været på juleindkøb med kæresten hele dagen. Det endte med at hun kiggede på tøj alle steder :( Men sådan er de kvinder jo... he he :-)
God jul og godt nytår! Håber vi alle kan hjælpe hinanden en masse i det nye år :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.