Maison > Questions et réponses > le corps du texte
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 | ... |
Je veux demander : le tableau des abonnés a-t-il l'air bien conçu ?
P粉9692531392024-04-01 00:30:46
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.