我有下表。
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错误,您可以处理它并显示一些警告。