在SQL中添加两行外键

2024-09-28 03:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在琢磨如何在一个事务中添加2行,其中1行依赖于另一行。

INSERT INTO users (username) VALUES ('malcom.reynolds')

INSERT INTO spaceships (name, owner) 
VALUES ('Serenity', <<Malcom Reynold's row ID>>)

我这样做的原因是我使用的库没有返回rowid,我需要尽可能少地提交事务,因为我要添加超过几百万条记录!在

我用的是:

  • SQL Server 2008
  • Python
  • pyodbc

有什么想法吗?真是太棒了:)


Tags: nameusername事务usersrowinsertvaluesowner
3条回答

您可以在一个批处理语句中执行此操作:

declare @key as int;
insert into users (username)
values ('malcom.reynolds');
set @key = (select scope_identity());
insert into spaceships (name, owner)
values ('Serenity', @key)

您可以使用T-SQLscope_identity从第一个INSERT语句返回新的ID。在

在第一个INSERT之前,声明一个变量来保存新ID的值:

DECLARE @ReturnValue int;

在第一个INSERT之后,添加以下内容以设置该变量的值:

SELECT @ReturnValue = scope_identity()

然后,您可以在第二个INSERT中使用@ReturnValue变量来代替:

^{pr2}$

http://msdn.microsoft.com/en-us/library/aa259185%28SQL.80%29.aspx

INSERT INTO users (username) VALUES ('malcom.reynolds');

INSERT INTO spaceships (name, owner) 
VALUES ('Serenity', SCOPE_IDENTITY() )

相关问题 更多 >

    热门问题