搜索

首页  >  问答  >  正文

如何防止多列重复输入?

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粉037450467P粉037450467272 天前404

全部回复(1)我来回复

  • P粉969253139

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

    回复
    0
  • 取消回复