Sql 具有外键约束的数据库事务问题
根据SQL数据库的一般情况,我有一个问题: 比如说,我有实体类型Sql 具有外键约束的数据库事务问题,sql,database,foreign-keys,Sql,Database,Foreign Keys,根据SQL数据库的一般情况,我有一个问题: 比如说,我有实体类型A(A\u id:PK;…),B(B\u id:PK;…)和AB(A\u id:PK,FK;B\u id:PK,FK;…)。如您所见,最后一个是带有外键约束的联接表 由于我有一个抽象层,它将每个实体和每个关系视为“对象”(RESTful图形数据库),因此应平等对待以下语句(SQL伪代码): 1.) (二) (三) 当然,选项1应适用于每个SQL DBMS。但是选项2和选项3有什么用呢。这条语句是有效的(事务上下文)还是打破了外键约束
A(A\u id:PK;…)
,B(B\u id:PK;…)
和AB(A\u id:PK,FK;B\u id:PK,FK;…)
。如您所见,最后一个是带有外键约束的联接表
由于我有一个抽象层,它将每个实体和每个关系视为“对象”(RESTful图形数据库),因此应平等对待以下语句(SQL伪代码):
1.)
(二)
(三)
当然,选项1应适用于每个SQL DBMS。但是选项2和选项3有什么用呢。这条语句是有效的(事务上下文)还是打破了外键约束
在第二种情况下(断开的外键约束),是否有按正确顺序插入数据(如示例中所述)的一般方法?是否存在某种反射或类似的东西
干杯。取决于实施情况,另外:
可推迟最初推迟的时间
让您失望。对我有用。
BEGIN;
INSERT A;
INSERT B;
INSERT AB;
COMMIT;
BEGIN;
INSERT A;
INSERT AB;
INSERT B;
COMMIT;
BEGIN;
INSERT AB;
INSERT A;
INSERT B;
COMMIT;