Wat is er fout in "wis waar geen subrecords"

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan R

Jan R

30/05/2023 07:25:16
Quote Anchor link
hi

Ik probeer het wissen te beveiligen zodat het niet kan verwijderd worden zolang er gelinkt records zijn.
Probleem is dat er 2 linken(spelers) zijn naar elke partij.

Jan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DELETE
FROM
    TRN__spelers s
WHERE
    s.id=691 AND
    (
        (
            SELECT
                COUNT(*)
            FROM
                TRN__partijen p
            WHERE
                p.speler1 = s.id OR
                p.speler2 = s.id OR
                false
        )=0
    ) AND
    TRUE
 
PHP hulp

PHP hulp

19/03/2024 10:32:09
 
Adoptive Solution

Adoptive Solution

30/05/2023 07:46:10
Quote Anchor link
Met foreign key cascade.

https://mariadb.com/kb/en/foreign-keys/
 
Jan R

Jan R

30/05/2023 08:43:48
Quote Anchor link
Zoals ik al schreef.
Jan R op 30/05/2023 07:25:16:
Probleem is dat er 2 linken(spelers) zijn naar elke partij.

Dus ik kom er niet uit :(
Ook cascade dient toch om sowieso te wissen. Ik wil dit net beletten.

Toch bedankt voor het idee.

Jan
 
- Ariën  -
Beheerder

- Ariën -

30/05/2023 09:07:10
Quote Anchor link
Weet je zeker dat je ze wilt wissen? Je kan ze ook flaggen als 'deleted'.
 
Jan R

Jan R

30/05/2023 12:03:45
Quote Anchor link
Zeker weten. Alles moet weg :)
2° niveau verwijderingen. Na de vlag.
 
Ivo P

Ivo P

30/05/2023 14:53:28
Quote Anchor link
Zoals Adoptive zegt, maar dan niet Cascade, maar Restrict.

De FK zal weigeren om iets te verwijderen wat nog kinderen heeft.
Dat wil je misschien wel sowieso instellen (of met cascade) om de integriteit van je data te waarborgen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.