|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 364
|
[DB Postgres] Errore chiave esterna
Salve ragazzi, ho un problema con Postgresql, non mi fa inserire più di una
volta, la stessa chiave esterna, mi spiego meglio mettendo il mio database in questione. create table artista (id_artista integer not null, nome varchar (14) not null, cognome varchar (14) not null, nascita date, primary key (id_artista)); create table museo (id_museo integer not null, nome varchar (15), n_dipendenti integer, localita varchar (12) not null, primary key (id_museo)); create table opera (id_opera integer not null, nome varchar (15) not null, costo float, n_autore integer not null, n_museo integer not null, primary key (id_opera), constraint composta foreign key (n_autore) references artista on delete cascade, constraint appartine foreign key (n_museo) references museo on delete cascade); insert into artista (id_artista, nome, cognome, nascita) values (1, 'Franco', 'Franchi', '07/05/1934'); insert into artista (id_artista, nome, cognome, nascita) values (2, 'Ciccio', 'Ingrassia', '06/07/1932'); insert into artista (id_artista, nome, cognome, nascita) values (3, 'Leonardo', 'Da Vinci', '05/08/1834'); insert into artista (id_artista, nome, cognome, nascita) values (4, 'Mario', 'Neri', '05/02/1939'); insert into artista (id_artista, nome, cognome, nascita) values (5, 'Bianco', 'Bianchi', '07/01/1967'); insert into artista (id_artista, nome, cognome, nascita) values (6, 'Ermanno', 'Fraschi', '09/09/1965'); insert into museo (id_museo, nome, n_dipendenti, localita) values (1, 'Arcispolo', 23, 'Firenze'); insert into museo (id_museo, nome, n_dipendenti, localita) values (2, 'Tuzzettu', 90, 'Livorno'); insert into museo (id_museo, nome, n_dipendenti, localita) values (3, 'La Meraviglia', 56, 'Milano'); insert into museo (id_museo, nome, n_dipendenti, localita) values (4, 'I quattro venti', 34, 'Torino'); insert into museo (id_museo, nome, n_dipendenti, localita) values (5, 'La Maestà', 23, 'Torino'); insert into museo (id_museo, nome, n_dipendenti, localita) values (6, 'Il Franco', 12, 'Roma'); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(1, 'Il Teschio', 23000.90, 1, 1); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(1, 'La Verità', 34000.34, 1, 3); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(2, 'Il Nano', 56000.00, 2, 5); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(2, 'Il Caimano', 100000.00, 3, 6); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(3, 'Mejo me sento', 90986.11, 5, 4); insert into opera (id_opera, nome, costo, n_autore, n_museo) values(4, 'La Gioconda', 100000.09, 3, 2); Questi sono gli errori che mi segnala Postgresql psql:opere_arte.sql:68: ERROR: Cannot insert a duplicate key into unique index opera_pkey INSERT 18287 1 psql:opere_arte.sql:74: ERROR: Cannot insert a duplicate key into unique index opera_pkey In pratica nella tabella opera, un autore non può aver composto più di una opera e questo è molto strano, visto che il campo n_autore nella tabella opera è una chiave esterna e non primaria, quindi perchè non potrei inserire la stessa chiave esterna più di una volta? Grazie a chi vorrà aiutarmi |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:43.



















