Gecombineerde primary key in postgres. hoe?

Pagina: 1
Acties:

  • kmf
  • Registratie: November 2000
  • Niet online
Ik wil een tabel tarieven aanmaken. De primary key voor dit tabel zou een gecombineerde moeten zijn van tarief+week+jaar.

Maar nou lijkt het zo dat PostgreSQL geen gecombineerde primary keys kent, weet iemand hoe ik dit moet oplosseb dan?

Ik moet dit tabel namelijk gaan opvullen vanuit een ander tabel.... en dan kan ik toch niet die 3 kollommen, tarief, week, jaar combineren en een kolom van maken? of wel?

Ik vind het wel vreemd, dat PostgreSQL geen gecombineerde primary keys aankan. ik dacht dat dat een SQL-standaard was.

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je zou ook de manual kunnen doornemen :?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
acm=# create table test (
acm(# testveld1 integer not null,
acm(# testveld2 integer not null,
acm(# testveld3 integer not null,
acm(# primary key (testveld1, testveld2, testveld3)
acm(# );
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'test_pkey' for table 'test'
CREATE

acm=# \d test
        Table "test"
 Attribute |  Type   | Modifier
-----------+---------+----------
 testveld1 | integer | not null
 testveld2 | integer | not null
 testveld3 | integer | not null
Index: test_pkey

acm=# \d test_pkey
  Index "test_pkey"
 Attribute |  Type
-----------+---------
 testveld1 | integer
 testveld2 | integer
 testveld3 | integer
unique btree (primary key)

acm=#

  • kmf
  • Registratie: November 2000
  • Niet online
Op dinsdag 12 maart 2002 11:28 schreef ACM het volgende:
Je zou ook de manual kunnen doornemen :?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
acm=# create table test (
acm(# testveld1 integer not null,
acm(# testveld2 integer not null,
acm(# testveld3 integer not null,
acm(# primary key (testveld1, testveld2, testveld3)
acm(# );
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'test_pkey' for table 'test'
CREATE

acm=# \d test
        Table "test"
 Attribute |  Type   | Modifier
-----------+---------+----------
 testveld1 | integer | not null
 testveld2 | integer | not null
 testveld3 | integer | not null
Index: test_pkey

acm=# \d test_pkey
  Index "test_pkey"
 Attribute |  Type
-----------+---------
 testveld1 | integer
 testveld2 | integer
 testveld3 | integer
unique btree (primary key)

acm=#
Hmm.. thanks. Ik had wel de reference manual en users guide doorgelezen, maar daaruit heb ik begrepen dat je maar voor een kolom een primary key aan kan maken. Blijkbaar heb ik dat dus verkeerd begrepen :) Sorry ;)

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp