我写了一个约束:
ALTER TABLE main
ADD CONSTRAINT pk_main
PRIMARY KEY (x,y,z)
约束似乎有效,因为我没有语法错误或任何其他指示它不起作用,但我没有看到它确实起作用,也不知道如何找到约束。
1)如何判断约束是否成功添加?
2)如果我做错了,如何正确添加约束?
答案 0 :(得分:2)
CurrentDb.Execute "ALTER TABLE main ADD CONSTRAINT pk_main PRIMARY KEY (x,y,z)"
该语句执行无误。如果我仍然不确定它是否工作",我可以通过添加一个值来复制存储在另一行中的x,y和z值的行进行测试。如果主键约束有效,则重复值将触发错误。
但是在Design View中打开表并查看其索引会更快。 DoCmd.OpenTable "main", acViewDesign
...
或者,由于主键约束是作为索引实现的,而约束名称是索引名称,因此可以使用DAO检查表的索引。
? CurrentDb.TableDefs("main").Indexes.Count
1
? CurrentDb.TableDefs("main").Indexes(0).Name
pk_main
? CurrentDb.TableDefs("main").Indexes(0).Primary
True
? CurrentDb.TableDefs("main").Indexes(0).Fields.Count
3
? CurrentDb.TableDefs("main").Indexes(0).Fields(0).Name
x
? CurrentDb.TableDefs("main").Indexes(0).Fields(1).Name
y
? CurrentDb.TableDefs("main").Indexes(0).Fields(2).Name
z
如果您想要另一种方法来检查是否已创建主键约束,请考虑ADO OpenSchema Method。如果您使用Dot.Net和OleDb,它提供了类似的方法。