Wie verhindert man doppelte Einträge in mehreren Spalten?
P粉037450467
P粉037450467 2024-03-31 22:54:17
0
1
302

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 ...
  • Erste Zeile = Fehler
  • Zweites = Gut
  • Drittes = schlecht

Ich möchte fragen: Sieht die Follower-Tabelle gut gestaltet aus?

P粉037450467
P粉037450467

Antworte allen(1)
P粉969253139

如果您使用 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 约束?了解如何使用触发器模拟检查约束。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!