无论如何,我们可以在数据库表级别设置约束,以具有某些列的大写或小写值?当我们创建一个表时,我们可以设置NOT NULL来避免列上出现空值。同样的,我们可以用大写或小写来做吗?
您可以使用检查约束:
create table foo
(
only_lower varchar(20) not null check (lower(only_lower) = only_lower),
only_upper varchar(20) not null check (upper(only_upper) = only_upper)
);
我有几乎相同的情况,尝试检查约束,但如果用户没有提到它为UPPER()或LOWER()它给出了错误,所以我采取触发器路由如下面的代码。
--creating table
create table user_name (
first_name varchar2(50),
last_name varchar2(50));
--creating trigger
CREATE OR REPLACE TRIGGER TRG_USER_NAME_IU
BEFORE INSERT OR UPDATE ON USER_NAME
FOR EACH ROW
BEGIN
:NEW.FIRST_NAME := UPPER(:NEW.FIRST_NAME);
:NEW.LAST_NAME := UPPER(:NEW.LAST_NAME);
END;
/
可以测试和分享反馈或评论