gpt4 book ai didi

sql - 根据另一列的值在一列上添加多个 CHECK 约束

转载 作者:行者123 更新时间:2023-12-04 14:28:05 25 4
gpt4 key购买 nike

给定一个包含两列 col1 和 col2 的表,我如何使用 Oracle CHECK 约束来确保 col2 中允许的内容取决于相应的 col1 值。

具体来说,

  • 如果col1有A,那么对应的col2值必须小于50;
  • 如果col1有B,则对应的col2值必须小于100;
  • 如果col1有C,那么对应的col2值必须小于150。

感谢您的帮助!

最佳答案

使用case语句添加检查约束

CREATE TABLE tbl
(
col1 varchar(10),
col2 numeric(4),
CONSTRAINT check_cols_ctsr
CHECK (CASE WHEN col1='A' THEN col2 ELSE 1 END <50 AND
CASE WHEN col1='B' THEN col2 ELSE 1 END <100 AND
CASE WHEN col1='C' THEN col2 ELSE 1 END <150)
);

关于sql - 根据另一列的值在一列上添加多个 CHECK 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28679208/

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