如何在sql中同时向两个表插入数据
我有两张表,车辆和车辆类型。我想使用一个表单将相同的数据添加到两个表中。我该怎么做 您可以使用参数创建存储过程 在名为2 insert into语句的存储过程中,使用参数作为值 使用存储过程,您可以拥有事务控制—如果出现任何错误,则回滚两个表的插入如何在sql中同时向两个表插入数据,sql,Sql,我有两张表,车辆和车辆类型。我想使用一个表单将相同的数据添加到两个表中。我该怎么做 您可以使用参数创建存储过程 在名为2 insert into语句的存储过程中,使用参数作为值 使用存储过程,您可以拥有事务控制—如果出现任何错误,则回滚两个表的插入 create procedure insert_into_2_tables @column1 varchar(50), @column2 int, ... as begin tran insert into table1 values (@co
create procedure insert_into_2_tables
@column1 varchar(50),
@column2 int,
...
as
begin tran
insert into table1 values (@column1, @column2, ...)
insert into table2 values (@column1, @column2, ...)
if @@error <> 0
rollback tran
else commit tran
create procedure insert_到_2_表中
@第1列varchar(50),
@第2列int,
...
作为
开始事务
在表1中插入值(@column1,@column2,…)
在表2中插入值(@column1,@column2,…)
如果@错误0
回滚传输
else提交传输
--您可以从表单、代码等调用此存储过程。编写两个单独的insert语句,将数据插入车辆表和车辆类型表。您没有指定DBMS,但在Postgres中,您可以使用一个SQL语句执行此操作:
with new_type as (
insert into vehicle_type values (1, 'big')
returning id
)
insert into vehicle
values
(1, (select id from new_type), 'super model');
SQLFIDLE示例:如果必须在两个不同的表中插入相同的数据,那么您的数据库模型肯定是错误的…;)您不能连续执行两次
插入到代码>查询?SQL中没有表单这样的东西。因此,请扩展标记以指示在中开发的内容。您可以在事务中执行两个插入,但标准SQL的INSERT
语句(以及DELETE
、UPDATE
等)只能影响一个表。因此,您需要两条语句,或者使用特定于产品的语言扩展(如果存在),如果您希望每次在一个表中插入一条记录时都发生这种情况,那么就使用触发器。这将是直截了当的。您使用的是哪种数据库管理系统?神谕博士后?你为什么要这么做?您是否试图访问车辆类型表的生成ID?如果是,那么还有更好的方法。