sql - 如何确定现有访问关系的 ON UPDATE/DELETE 操作?
问题描述
如何为 MS Access 中的外键关系约束获取 ON UPDATE 操作和 ON DELETE 操作?
这是我到目前为止所拥有的:
SELECT szRelationship as ConstraintName,
szObject as TableName,
szColumn as ColumnName,
szReferencedObject as ParentTableName,
szReferencedColumn as ParentColumnName
FROM MSysRelationships
where szObject not like 'MSys%'
解决方案
引用完整性详细信息似乎显示在 [MSysRelationships] 表的 [grbit] 列中:
MSysRelationships.grbit
bit value meaning
--- ----- -----------------------------------------------
0 1 1 = one-to-one relationship (0 = one-to-many)
1 2 don't enforce Referential Integrity
8 256 ON UPDATE CASCADE
12 4096 ON DELETE CASCADE
所以,例如,
- 与 ON UPDATE CASCADE 和 ON DELETE CASCADE 的一对多关系的值为 1000100000000 = 4352
- 与 ON UPDATE CASCADE 和 ON DELETE CASCADE 的一对一关系的值为 1000100000001 = 4353。
推荐阅读
- mongodb - MongoDB findOneAndUpdate():使用部分输入进行更新
- gulp - 如何让 gulp.series 运行两个单独运行时成功运行的任务?
- c++ - 从命令行获取参数的问题
- regex - 如何将 Google 表格上正则表达式计算字段的结果与数据透视表相加?
- excel - 尝试在目录中搜索所有 txt 文件的内容以查找字符串,并在找到时将文件路径发布到单元格中
- hibernate - 休眠 @ManyToOne 和 @OneToMany
- laravel - 如何从最后 5 行中获取随机行?
- r - 将可编辑的闪亮数据表写入 .csv 文件
- javascript - 我可以使用 Plotly 的自定义按钮来更新多面图中的“shared_yaxes”吗?
- amazon-web-services - 通过 https 提供 S3 资源