Originariamente inviato da denis76
Uso PostgreSQL. Come faccio in linguaggio sql a fare cio?
create table tabella ...]
In PostgreSQL puoi usare il tipo SERIAL

codice:
CREATE TABLE studenti
(
  id          SERIAL PRIMARY KEY,
  cognome     VARCHAR(30),
  nome        VARCHAR(30),
  matricola   NUMERIC(10)
);
SERIAL è come una macro verrà prima creata una sequenza

CREATE SEQUENCE studenti_id_seq;

e poi la parola chiave SERIAL verrà sostituita con

integer DEFAULT nextval('studenti_id_seq') NOT NULL

Per inserire uno studente farai qualcosa tipo
codice:
INSERT INTO studenti (cognome, nome, matricola)
VALUES ('Rossi','Mario',1121211);
un tutorial in flash sulle sequenze
http://techdocs.postgresql.org/college/001_sequences/

un tutorial in flash sull'integrità referenziale
http://techdocs.postgresql.org/redir...rity/index.php

il tipo serial
http://www.postgresql.org/docs/curre...ATATYPE-SERIAL

le sequenze
http://www.postgresql.org/docs/curre...esequence.html

Domanda:
Matricola è già chiave primaria della relazione Studenti, è stata creata proprio per questo scopo, perchè creare un'altra chiave fittizia?