不区分大小写的检查约束
Case-Insensitive Check Constraint
创建了以下 table:
CREATE TABLE VEHICLES
(vehicleVIN VARCHAR(30) PRIMARY KEY,
vehicleType VARCHAR(30) NOT NULL CHECK (vehicleType IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (vehicleWhereFrom IN ('maryland','virginia','washington, d.c.'));
当 运行 插入命令时,具有大写字母的条目(例如:Compact、COMPACT、Maryland、VIRGINIA 等)违反了检查约束(错误 ORA-02290)。如何使检查约束不区分大小写?期望的结果是接受插入的数据,无论大小写如何,只要单词拼写正确。通过 NOVA 使用 Oracle 数据库。谢谢!
使用lower
检查列的小写版本。
CHECK vehicleType VARCHAR(30) NOT NULL CHECK (lower(vehicleType) IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
CHECK vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (lower(vehicleWhereFrom) IN ('maryland','virginia','washington, d.c.'));
您可以使用
CHECK (REGEXP_LIKE(vehicleType,'compact|midsize|fullsize|suv|truck','i'))
创建了以下 table:
CREATE TABLE VEHICLES
(vehicleVIN VARCHAR(30) PRIMARY KEY,
vehicleType VARCHAR(30) NOT NULL CHECK (vehicleType IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (vehicleWhereFrom IN ('maryland','virginia','washington, d.c.'));
当 运行 插入命令时,具有大写字母的条目(例如:Compact、COMPACT、Maryland、VIRGINIA 等)违反了检查约束(错误 ORA-02290)。如何使检查约束不区分大小写?期望的结果是接受插入的数据,无论大小写如何,只要单词拼写正确。通过 NOVA 使用 Oracle 数据库。谢谢!
使用lower
检查列的小写版本。
CHECK vehicleType VARCHAR(30) NOT NULL CHECK (lower(vehicleType) IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
CHECK vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (lower(vehicleWhereFrom) IN ('maryland','virginia','washington, d.c.'));
您可以使用
CHECK (REGEXP_LIKE(vehicleType,'compact|midsize|fullsize|suv|truck','i'))