簡體   English   中英

創建具有關系 SQL 的表

[英]Create a table with relationships SQL

我想知道如何創建表之間的關系。

我打算將新行添加到 table1 時,該行也在表 2 中創建,我該怎么做?

 Table1
 ID_Orders   ID_Line   Orders   Clients
    1          2        A       ABC
    2          2        B       ABC

 Table2
 ID_Orders   ID_Line   Product
    1          2        A       
    2          2        B 

  

我嘗試使用外鍵關系,但它不起作用。

CREATE TABLE Table2(
 ID_Orders   int ,
 ID_Line   int,
 Product text,
 FOREIGN KEY(ID_Orders) REFERENCES Table1(ID_Orders),
 FOREIGN KEY(ID_Line) REFERENCES Table1(ID_Line)
 );

您所描述的不是兩個表之間的標准關系。 這些關系使用外鍵關系來描述。 但是你想要“自動”更新。

最簡單的方法是使用視圖:

create view table2 as
    select ID_Orders, ID_Line, Orders as Product
    from table1;

對此的一個變體是物化視圖,它將物化數據,因此查詢可能會更快(好吧,在這種情況下可能不是,但如果查詢更復雜,則可能)。

另一種方法是擁有一個真正的table2並在table1上使用insert (也許還有updatedelete觸發器)。 當將一行插入table1時,觸發器可以將數據復制到table2

綜上所述,將相同的數據存儲在多個位置是一種不好的做法。 有時,它可能是一個重要的優化。 但是根據您的描述,您不需要兩張桌子。

我知道這是最懶惰的方式,但它奏效了:) 謝謝

SQL Management Studio Select 腳本... 創建到... 新查詢 Window。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM