2010-11-03 30 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

相關問題