日期:2014-05-17  浏览次数:20516 次

sqlite3 多表连接插入数据
第一张表的内容已存在,后面两张表已建好,内容都是根据第一张表的内容生成的
跳线小结表jumper
FromDevice FromPin FromNet ToDevice ToPin ToNet
U2 30 M30 U3 14 M14
Jp1 1 M1 Jp1 2 M2
Jp2 11 M11 Jp2 12 M12
Jp2 12  M12  Jp3 21  M21 
Jp3 21  M21  Jp4 31 M31

新的工作网络名表WkingNetName
ID Name
1 Net1
2 Net2
3 Net3

Name:根据表jumper中的fromnet和tonet取新的工作网络名name,若frompin和topin中有相同的则视为同一新网络名
(net1包括m30、m14; net2包括m1、m2; net3包括m11、m12、m21、m31)
还有,这个新生成的name取名不一定net1,net2,net3,大家看看什么命名规则合适。

新的工作网络连接关系表WkingNetConectionRelation
ID WkingNetID WkingPinID
1 1 30
2 1 14
3 2 1
4 2 2
5 3 11
6 3 12
7 3 21
8 3 31

Wkingpinid包含jumper表中的frompin和topin的所有内容,插入表之前去除重复的wkingpinid
Wkingnetid根据jumper表中的frompin和topin找到对应的fromnet和tonet,在对应wkingnetname表中的name找到对应的id

才开始学sql,很多都不会,请各位大侠帮我看看吧,谢谢大家啦!
SQLite3 SQL

------解决方案--------------------
你的设计思路不够清晰,其实大概意思我想无非是,一个表里面的数据变化,对应执行一些脚本~

建一个表,通过触发器执行后续操作,这样操作起来非常简单~

------解决方案--------------------
建议你重新设计一下表结构,参考SQL SERVER入门书籍谈到的进存销那种设计模式

careate trigger trigger_name on jumper
for insert
as
declare @a  varchar(20),
select @a=name from inserted        
if not exists(  select name from jumper where name=@a and ) //在这里写条件
begin

//在这里写对应的语句执行操作
else
commit
end
go