我想将“检查”约束添加到某个表,但首先我必须检查该约束是否存在。我的 SQL 脚本中有一些错误。正确的做法是什么?
ALTER TABLE public.ELEMENTS ADD CONSTRAINT IF NOT EXISTS elements_check CHECK ((t1_id IS NOT NULL) OR (t2_id IS NOT NULL));
根据手册:
ALTER TABLE ... DROP CONSTRAINT IF EXISTS
确实存在ALTER TABLE ... ADD CONSTRAINT IF NOT EXISTS
不存在所以你必须在2.之前执行1.:
ALTER TABLE public.ELEMENTS DROP CONSTRAINT IF EXISTS elements_check ;
ALTER TABLE public.ELEMENTS ADD CONSTRAINT elements_check CHECK ((t1_id IS NOT NULL) OR (t2_id IS NOT NULL));
我使用此语句来检查 SQL Server 中是否存在主键。
SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'PrimaryKeyName') AND type in (N'PK') AND parent_object_id = OBJECT_ID(N'TableName')