簡體   English   中英

我們如何自動遞增compostite主鍵的列之一?

[英]How can we auto increment one of the columns of a compostite primary key?

 CREATE TABLE abc(
        seq_id INT NOT NULL,
        name VARCHAR(30) NOT NULL,
        value VARCHAR(100),
        PRIMARY KEY (seq_id, name)
    );

該表的內容將是:

Seq_id    Name            Value

1        Bill.billNo     1234
1        Bill.date       25/07/2014
1        Person.fname     abc
1        Person.lname     xyz

2        Bill.billNo     1220
2        Bill.date       11/07/2014
2        Person.fname     def
2        Person.lname     ghy

我希望seq_id列值自動增加。 我該如何實現?

通常這不容易做到。 您可以自動增加單個列(在Postgres中稱為SERIAL ),但不能相對於另一列自動增加。 好吧,可以。 但這需要使用觸發器。

不過,就您而言,我認為您存在數據建模問題。 seq_id實際上代表某種東西 但是您沒有桌子。 我懷疑您應該有一個單獨的表,例如BillPersons ,其SERIAL ID每個序列有一行。 然后,您將擁有另一個表,例如BillPersonDetails ,它具有自己的SERIAL ID和對BillPersons的外鍵引用。

暫無
暫無

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

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