【发布时间】:2014-12-18 14:06:19
【问题描述】:
我想创建一个函数来检查我将插入的 ID 是否唯一。 这就是我所做的:
-- the function has to return true if ID is unique and false if ID is allready used(not unique)
CREATE OR REPLACE FUNCTION Check_uniqueID
( p_ID IN STORE."ID"%TYPE)
RETURN BOOLEAN
AS
v_IsUnique BOOLEAN := FALSE;
BEGIN
ALTER TABLE STORE
ADD CONSTRAINT check_unique_id UNIQUE (p_ID);
-- how can i programm that he returns true if its unique and false if its not?
v_IsUnique := TRUE;
RETURN v_IsUnique;
END;
提前致谢!
【问题讨论】:
-
这就是我现在所拥有的 CREATE OR REPLACE FUNCTION Check_uniqueID ( p_ID IN STORE."ID"%TYPE) RETURN BOOLEAN AS v_ID STORE."ID"%TYPE; v_IsUnique BOOLEAN := FALSE; BEGIN SELECT "ID" INTO v_ID FROM STORE WHERE "ID"=p_ID;如果 v_ID = NULL 那么 v_IsUnique := true; ELSE v_IsUnique := FALSE;万一;返回 v_IsUnique;结束;
-
为什么?您应该有一个具有自动生成值的唯一索引,强制它是唯一的。