Oracle 创建检查约束判断age在18到60岁之间的男性或者age在18到55岁之间的女性。 4) 插入相关数据进行约束的验
时间: 2024-09-18 09:01:31 浏览: 31
Oracle数据库中的检查约束(Check Constraint)是一种用于验证特定列数据的有效性的机制。对于年龄和性别条件,我们可以创建一个名为`age_gender_constraint`的检查约束,如下:
```sql
CREATE TABLE Users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender CHAR(1) CHECK (
(CASE WHEN gender = 'M' THEN age BETWEEN 18 AND 60 ELSE age BETWEEN 18 AND 55 END)
)
);
-- 插入满足约束的数据示例:
INSERT INTO Users (id, name, age, gender) VALUES (1, 'John', 25, 'M'); -- 正确,年龄在18-60之间且是男性
INSERT INTO Users (id, name, age, gender) VALUES (2, 'Jane', 40, 'F'); -- 正确,年龄在18-55之间且是女性
INSERT INTO Users (id, name, age, gender) VALUES (3, 'Alex', 17, 'M'); -- 错误,因为年龄小于18
INSERT INTO Users (id, name, age, gender) VALUES (4, 'Alice', 56, 'F'); -- 错误,因为女性超过了55岁
-- 违反约束的插入会失败
INSERT INTO Users (id, name, age, gender) VALUES (5, 'Bob', 65, 'M'); -- 错误,因为男性超过60岁
```
在这个例子中,尝试插入不符合年龄限制的数据时,将会触发SQL异常,不允许记录插入表中。
阅读全文