SQL行插入到表中+;在一条语句中将键插入其链接表(多对多关系)

SQL行插入到表中+;在一条语句中将键插入其链接表(多对多关系),sql,mysql,insert,jdbctemplate,Sql,Mysql,Insert,Jdbctemplate,嘿,我习惯了ORM,所以我非常缺乏sql经验。我想知道向表中插入一行的最佳方式是什么,即与另一个表存在多对多关系,并且在one语句中还向特定链接表中插入一行两个外键,以保持数据完整性 如果有人在使用SpringJDBCTemplate,我还想知道它是否支持此任务。提前感谢这是存储过程的典型用途,例如 CREATE PROC MyInsertM2M(@fieldname1 int, @fieldname2 varchar(20), @Key1 int, @Key2 int etc) AS BEGI

嘿,我习惯了ORM,所以我非常缺乏sql经验。我想知道向表中插入一行的最佳方式是什么,即与另一个表存在多对多关系,并且在one语句中还向特定链接表中插入一行两个外键,以保持数据完整性


如果有人在使用SpringJDBCTemplate,我还想知道它是否支持此任务。提前感谢

这是存储过程的典型用途,例如

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)


然后google开始TRAN、提交TRAN和回滚

史蒂夫卡夫,谢谢你的回复,但是我真的想知道没有它们怎么做,我不太喜欢存储过程。我宁愿把一切都放在应用程序端,不要考虑数据库。你的问题意味着使用SQL。如果你已经习惯了ORM,你不是在一个事务中使用过吗?不说ORM,我通常只是在一个事务中创建两个sql语句。我是一名Java程序员,JDBC驱动程序不允许两个DB查询的串联。因此,只需将一行插入到多个rel中的表中,就可以生成20行代码。另一张桌子。这就是为什么我想知道是否有一种方法可以在一个SQL语句/查询中实现这一点。