2010-11-03 150 views
0

嗨,我习惯了ORM,所以我有很大的sql经验缺席。我想知道什么是向表中插入行的最佳方式,即与另一个表进行多对多的关系,并且在一个语句中还将一行两个外键插入到特定的链接表中以保留数据的完整性。SQL行在一个语句(多对多关系)内插入一个表+键到其链接表中

如果有人使用spring jdbcTemplate,我也想知道它是否支持这个任务。在此先感谢

回答

1

这就是通常会被用来存储程序,例如像

CREATE PROC MyInsertM2M(@fieldname1 int, @fieldname2 varchar(20), @Key1 int, @Key2 int etc) 
AS 
BEGIN 

INSERT INTO MyMainTable(fieldname1, fieldname2...) 
VALUES(@fieldname1, @fieldname2...) 

INSERT INTO MyResolverTable(KeyField1, Keyfield2) 
VALUES (@Key1, Key2) 

END 

(假设SQL Server)的

那么谷歌BEGIN TRAN,COMMIT TRAN和ROLLBACK。

+0

SteveCav,感谢您的回复,但我真的很想知道如何在没有它们的情况下完成它,我不太喜欢存储过程。我宁愿让应用程序中的所有东西都离开数据库 – lisak 2010-11-03 21:50:55

+0

您的问题意味着使用SQL。如果你习惯了ORM,你有没有在交易中使用它? – SteveCav 2010-11-04 00:43:54

+0

不说ORM,我通常只是在一个事务中创建两个sql语句。我是一名Java程序员,JDBC驱动程序不允许连接两个数据库查询。所以它会产生类似于20行的代码,只是为了将行插入到相对较多的表中。与另一张桌子。这就是为什么我想知道在一个SQL语句/查询中是否有这样做的方法。 – lisak 2010-11-04 15:23:29

相关问题