首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >两列在每行上具有不同值的MySql约束

两列在每行上具有不同值的MySql约束
EN

Stack Overflow用户
提问于 2019-06-03 06:35:07
回答 2查看 100关注 0票数 0

如何声明约束,使两列在任何行中不能具有相同的值。

例如,给定

create table `presents` (
    `from` varchar(255) NOT NULL,
    `to` varchar(255) NOT NULL
)

我想确保没有人给自己送礼物。

'alice', 'bob'     # OK
'bob',   'charlie' # OK
'bob',   'alice'   # OK
'bob',   'alice'   # OK again
'bob',   'bob'     # Fails
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-03 06:51:33

create table `presents` (
    `from` varchar(255) NOT NULL,
    `to` varchar(255) NOT NULL,
    CHECK(from<>to)
)
票数 2
EN

Stack Overflow用户

发布于 2019-06-03 06:43:14

这里有一个想法:

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table (id SERIAL PRIMARY KEY, `from` INT NOT NULL, `to` INT NOT NULL);

INSERT INTO my_table (`from`,`to`) SELECT 1,2 FROM (SELECT 1) x WHERE 1 <> 2;
INSERT INTO my_table (`from`,`to`) SELECT 1,1 FROM (SELECT 1) x WHERE 1 <> 1;


SELECT * FROM my_table;
+----+------+----+
| id | from | to |
+----+------+----+
|  1 |    1 |  2 |
+----+------+----+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56419435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档