我有下表。

CREATE TABLE people(
first_name VARCHAR(128) NOT NULL,
nick_name VARCHAR(128) NULL
)

如果有人试图插入,我想阻止他们的昵称与名字相同。我不想在这两列中的任何一列上创建索引,这只是为了防止在名字和nick_名称相同的地方插入记录。
有没有办法创建一个规则来防止在first_name等于nick_name的地方插入记录?

最佳答案

CREATE TRIGGER `nicknameCheck` BEFORE INSERT ON `people` FOR EACH ROW begin
  IF (new.first_name = new.nick_name) THEN
    SET new.nick_name = null;
  END IF;
END

或者您可以将first_name设置为NULL,这将导致SQL错误,您可以处理它并显示一些警告。

07-28 03:01
查看更多