2013-01-06 49 views
1

我有下表結構:SQL對錶2的自動生成一排,當行插入表1

Users: 

columns: user_id, ... 


Users_Skins: 

columns: user_id, ... 

我想,如果一個用戶寄存器(被填充Users),它會自動添加Users_Skins上的一行與的user_id,至Users_Skins

我應該搜索最大user_id,然後插入一個新行,或者有更好的方法(可能)?

編輯:我使用SQL Server

+0

取決於你的架構。觸發器,代碼,託管類,一個服務來做到這一點。它是否必須對應用程序透明?我的意思是,來吧,你是「一位廚師,我需要美食,你能告訴我該怎麼做」,而不是至少告訴我們你的要求是什麼。 – TomTom

+0

您正在使用哪些DBMS?甲骨文? PostgreSQL的? –

+0

@a_horse_with_no_name SQL Server – Novak

回答

3

如果您不需要插入任何附加數據User_Skins觸發可能是有用的,類似的規定:

create trigger UsersInsert 
on Users after insert as 
begin 
    insert into Users_Skins(user_id, ...) 
    select i.user_id from inserted I   
end 

代替試圖找到最大的user_id並增加它,我寧願使用IDENTITY。

+0

這對我來說工作得非常好。在'Users_Skins'上,我只對其他兩個字段使用默認值。非常感謝你。 – Novak