gpt4 book ai didi

mysql - SQL 列中只有一个单元格可以有 X 值

转载 作者:行者123 更新时间:2023-11-29 06:25:58 25 4
gpt4 key购买 nike

有没有一种方法可以确保,当您设计一个表(SQL、MySQL)时,X 列中只有一个单元格为 true,其余自动为 false ?当您将不同单元格的值更改为 true 时,所有其他单元格应自动变为 false。排他性的单选按钮类型,但用于列。

mainOfferName | value
---------------------
pizza | false
spaghetti | false
salad | true
stew | false

将披萨作为主要供应品后,您将获得如下内容:

mainOfferName | value
---------------------
pizza | true
spaghetti | false
salad | false
stew | false

我可以手动运行查询并确保在任何给定时间只有一个值为真,但我很好奇是否可以在我的表中添加一个约束,以便我只更改我需要的行/单元格 true 并且数据库引擎负责仅保留该值 true

最佳答案

有一个单独的表,其中一行包含所需行的 mainOfferName。然后查询为:

select yt.*, (nt.mainOfferName is not null) as valueFlag
from yourtable yt left join
newtable nt
on yt.mainOfferName = nt.mainOfferName;

当你想改变值时,改变newtable中的值。

注意:您可以将查询放入 View 中,只读用户将正常工作。

并且,您可以通过 yourtable 上的 update 触发器来实现它。它不会更新 yourtable,而是更新 newtable

关于mysql - SQL 列中只有一个单元格可以有 X 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com