Heim > Fragen und Antworten > Hauptteil
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
Wie verhindere ich doppelte Einträge in mehreren Spalten?
So etwas brauche ich zum Beispiel nicht
FOLLOWER_ID | FOLLOWING_ID | FOLLOWING_IN |
---|---|---|
283 | 283 | ... |
193 | 283 | ... |
908 | 908 | ... |
Ich möchte fragen: Sieht die Follower-Tabelle gut gestaltet aus?
P粉9692531392024-04-01 00:30:46
如果您使用 MySQL 8.0.16 或更高版本,则可以使用 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
如果您使用的是旧版本,请参阅MySQL 可以吗触发器模拟 CHECK 约束?了解如何使用触发器模拟检查约束。