首页 > 解决方案 > 如何设置 MySQL 唯一行?

问题描述

我想在 MySQL 数据库中运行这个 SQL。

INSERT INTO
  colors (red, blue)
VALUES
  ('value1', 'value2');

但我希望它只在value1 !== value2. 有什么办法吗?感谢您的关注。

标签: mysqlsql

解决方案


您可以使用check约束来返回错误:

ALTER TABLE colors ADD CONSTRAINT (red <> blue);

或者,对于这个特定的插入,您可以使用INSERT . . . SELECT

INSERT INTO colors (red, blue)
    SELECT red, blue
    FROM (SELECT 'value1' as red, 'value2' as blue) v
    WHERE red <> blue;

推荐阅读