Comment éviter les doublons dans plusieurs colonnes ?
P粉037450467
P粉037450467 2024-03-31 22:54:17
0
1
387

CREATE TABLE `FOLLOWERS` 
(`FOLLOWER_ID` char(255) COLLATE utf8_unicode_ci NOT NULL, 
`FOLLOWING_ID` char(255) COLLATE utf8_unicode_ci NOT NULL, 
`FOLLOWING_IN` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Comment éviter les entrées en double dans plusieurs colonnes ?

Par exemple, je n'ai pas besoin de quelque chose comme ça

FOLLOWER_ID FOLLOWING_ID FOLLOWING_IN
283 283 ...
193 283 ...
908 908 ...
  • Première ligne = erreur
  • Deuxième = Bien
  • Troisième = mauvais

Je veux demander : le tableau des abonnés a-t-il l'air bien conçu ?

P粉037450467
P粉037450467

répondre à tous(1)
P粉969253139

Si vous utilisez MySQL 8.0.16 ou supérieur, vous pouvez utiliser les contraintes CHECK.

CREATE TABLE `FOLLOWERS` (
    `FOLLOWER_ID` char(255) COLLATE utf8_unicode_ci NOT NULL, 
    `FOLLOWING_ID` char(255) COLLATE utf8_unicode_ci NOT NULL, 
    `FOLLOWING_IN` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT CHECK (FOLLOWER_ID != FOLLOWING_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Si vous utilisez une ancienne version, veuillez consulter Les déclencheurs MySQL peuvent-ils émuler les contraintes CHECK ? Apprenez à simuler des contraintes de vérification à l'aide de déclencheurs.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal