20260919211702
This commit is contained in:
1 parent
f56e70b050
commit
f4bfc1ddfc
97 files changed
+6059
-1712
No files matched your search
@@ -0,0 +1,63 @@
|
||||
/* ============================================================================
|
||||
删除策略冒烟测试夹具(可重复执行)
|
||||
----------------------------------------------------------------------------
|
||||
建一对专用临时业务表 + 模块配置 + 删除规则,用于验证删除引擎:
|
||||
smoke_order 主单(b_id varchar 业务键)
|
||||
smoke_order_item 明细(b_item_id 主键,b_order_id 外键指向主单)
|
||||
|
||||
覆盖场景:
|
||||
1. cascade:删主单连带删明细
|
||||
2. restrict:明细被引用时拒绝删主单
|
||||
3. SQL 规则:命中即整批拒绝
|
||||
4. direct:按表直删
|
||||
|
||||
清理见 smoke_delete_teardown.sql。
|
||||
============================================================================ */
|
||||
|
||||
if object_id('dbo.smoke_order_item', 'U') is null
|
||||
begin
|
||||
create table dbo.smoke_order_item (
|
||||
b_item_id varchar(50) not null primary key,
|
||||
b_order_id varchar(50) not null,
|
||||
b_name nvarchar(100) null
|
||||
);
|
||||
end
|
||||
GO
|
||||
|
||||
if object_id('dbo.smoke_order', 'U') is null
|
||||
begin
|
||||
create table dbo.smoke_order (
|
||||
b_id varchar(50) not null primary key,
|
||||
b_no nvarchar(50) null,
|
||||
b_status varchar(20) null
|
||||
);
|
||||
end
|
||||
GO
|
||||
|
||||
/* 模块配置:主单 */
|
||||
if not exists (select 1 from dbo.s_module where b_id = 'smoke_order')
|
||||
begin
|
||||
insert into dbo.s_module (b_id, b_parent_id, b_depth, b_path, b_name, b_module_type, b_view_table, b_save_table, b_key_field, b_canuse, b_xh)
|
||||
values ('smoke_order', null, 0, 'smoke_order', N'冒烟测试主单', 'data', 'smoke_order', 'smoke_order', 'b_id', 1, 9001);
|
||||
end
|
||||
GO
|
||||
|
||||
/* 模块配置:明细 */
|
||||
if not exists (select 1 from dbo.s_module where b_id = 'smoke_order_item')
|
||||
begin
|
||||
insert into dbo.s_module (b_id, b_parent_id, b_depth, b_path, b_name, b_module_type, b_view_table, b_save_table, b_key_field, b_canuse, b_xh)
|
||||
values ('smoke_order_item', null, 0, 'smoke_order_item', N'冒烟测试明细', 'data', 'smoke_order_item', 'smoke_order_item', 'b_item_id', 1, 9002);
|
||||
end
|
||||
GO
|
||||
|
||||
/* 关系:明细 → 主单,many_to_one。
|
||||
按设计 §3.2,many_to_one 的外键在源字段:源字段 b_order_id 是明细表里的外键列,
|
||||
目标字段 b_id 是主单被引用的列。删除主单时,明细(引用方)被 cascade 连带删除。 */
|
||||
delete from dbo.s_relation where b_source_module_id = 'smoke_order_item' and b_target_module_id = 'smoke_order';
|
||||
GO
|
||||
|
||||
insert into dbo.s_relation
|
||||
(b_source_module_id, b_source_field, b_target_module_id, b_target_field, b_relation_type, b_on_delete, b_canuse, b_xh)
|
||||
values
|
||||
('smoke_order_item', 'b_order_id', 'smoke_order', 'b_id', 'many_to_one', 'cascade', 1, 10);
|
||||
GO
|
||||
Reference in new issue
Block a user