如何防止多列重複輸入?
P粉037450467
P粉037450467 2024-03-31 22:54:17
0
1
385

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

如何防止多列重複輸入?

例如,我不需要這樣的東西

FOLLOWER_ID FOLLOWING_ID FOLLOWING_IN
283 283 ...
193 283 ...
908 908 ...
  • 第一行 = 錯誤
  • 第二=好
  • 第三=壞

我想問一下,追蹤者的桌子看起來設計得很好嗎?

P粉037450467
P粉037450467

全部回覆(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 限制? 了解如何使用觸發器模擬檢查約束。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板