PDA

View Full Version : errore in sqlplus


Selyn
04-06-2012, 16:03
ciao a tutti sto smanettando un po con sql e mi è uscito fuori questo errore:
ORA-0001 violata restrizione di unicità

cosa significa? su google non ho trovato una spiegazione. per facilitarvi il compito posto il codice:
create table CAMERA
(
N_CAMERA NUMBER(6) not null PRIMARY KEY,
TIPO VARCHAR2(20),
DATA DATE
);

insert into CAMERA (N_CAMERA,TIPO,DATA)
values (1,'Singola', to_date('06-06-2012','dd-mm-yyyy'));

c'è qualcosa che non va nel codice?
:help:

!fazz
04-06-2012, 16:46
non è che nella db è già presente una tabella con quel nome o nella tabella è già presente un record con la stessa chiave?

Dumah Brazorf
04-06-2012, 19:05
Se usi il numero camera come primary key non puoi inserire più record sulla stessa camera.

Selyn
05-06-2012, 17:12
scusate se rispondo ora,comunque nella hompage del database sono presenti gia le tabelle,e le cose inserite.il problema me lo da quando faccio start e trascino il popolamento mi da questo errore di restrizione,forse perchè gia ci sono i dati?
si la chiave primaria è il numero camera,le camere vanno da 1 a 20,non ci sono numeri uguali,anche le date sono diverse,da 1 a 10 sono sigole,da 11 a 20 doppie,forse è questo il problema?

aggiungo un altra domanda,la chiave primaria di camera è N_camera,se N_camera è una chiave esterna in un altra tabella,la chiave esterna si puo chiamare N_camera o la devo chiamare in un altro modo? perchè mi sta venendo il dubbio che le chiavi esterne le devo chiamare in un altra maniera o no?

Selyn
06-06-2012, 20:20
ho risolto il problema di sopra ma ora ne ho un altro:
ORA-02270: per questa lista-colonna non vi sono chiavi uniche o primarie corrispondenti

ho capito che mi dice che le chiavi non corrispondono,ma nelle tabelle le chiavi sono identiche,sono scritte bene.vi posto il codice:
create table ACCETTAZIONE
(
CODICEF VARCHAR2(10) not null ,
DATAINGRESSO DATE,
DATAUSCITA DATE,
N_CAMERA NUMBER(2),
CONSTRAINT FK_ACCETTAZIONE PRIMARY KEY (CODICEF,DATAINGRESSO,N_CAMERA),
CONSTRAINT FK_CAMERAH foreign key(N_CAMERA) references CAMERA(N_CAMERA)
);



create table ESEGUE
(
CODICEFISCALE VARCHAR2(10) not null,
CODICEF VARCHAR2(10) not null ,
CONSTRAINT FK_ESEGUE PRIMARY KEY(CODICEFISCALE,CODICEF),
CONSTRAINT FK_CLIENT foreign key(CODICEFISCALE) references CLIENTE(CODICEFISCALE),
constraint FK_ACCETTAZIONE foreign key (CODICEF) references ACCETTAZIONE (CODICEF)
);


il problema me lo da su fk_accettazione! come vedete le chiavi sono identiche!