Qualcuno sa dirmi perché quando inserisco una chiave esterna in una tabella "figlio" che referenzia la tabella "padre" e provo ad eseguire inserimenti che vadano contro il vincolo di chiave esterna il programma non mi impedisca di farlo?
Utilizzo precisamente la sintassi del libro ma è come se mySql non riconoscesse il legame esistente tra le due tabelle... :roll:
- borlotto
- S.O.S. Computer
- Domenica, 17 Ottobre 2004
- Subscribe via email
Comment
There are no comments made yet.
Accepted Answer
Pending Moderation
Qualcuno sa dirmi perché quando inserisco una chiave esterna in una tabella "figlio" che referenzia la tabella "padre" e provo ad eseguire inserimenti che vadano contro il vincolo di chiave esterna il programma non mi impedisca di farlo?
Utilizzo precisamente la sintassi del libro ma è come se mySql non riconoscesse il legame esistente tra le due tabelle... :roll:
hm...potresti essere un pò più chiaro... :?
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 1
Accepted Answer
Pending Moderation
create table impiegati(
cf char(15),
primary key(cf)
)
create table figli(
nome char(15),
cf char(15),
primary key(nome),
foreign key(cf) references impiegati
)
diciamo che in impiegati ho solamente il cf "A". se inserisco in figli una coppia ("pettorossi","B"
perché non mi segnala errore per il vincolo di chiave esterna non essendoci il corrispondente "B" nella tabella impiegati? se invece provo ad inserire nuovamente "A" in impiegati l'errore dovuto all'inserimento di un valore già esistente nella chiave primaria me lo segnala....quindi??? non è che devo linkare in qualche modo le due tabelle, o usare una sequenza precisa nella loro creazione, o aggiungere qualche parolina magica che gli faccia capire a questo coso che la tabella impiegati è referenziata da figli??? è un piccolo grosso problemino, ma forse sono io che mi sto rincoglionendo 8) /* Grazie */
cf char(15),
primary key(cf)
)
create table figli(
nome char(15),
cf char(15),
primary key(nome),
foreign key(cf) references impiegati
)
diciamo che in impiegati ho solamente il cf "A". se inserisco in figli una coppia ("pettorossi","B"
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 2
Accepted Answer
Pending Moderation
primary key(cf, nome)
eccole linkate!
Tutti i rif a nomi di prof sono altamente sgraditi!
eccole linkate!
Tutti i rif a nomi di prof sono altamente sgraditi!
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 3
Accepted Answer
Pending Moderation
:roll: si ma così lo inserisco nella chiave primaria. io lo voglio come chiave esterna... insomma sono quasi sicuro che la sintassi sia quella che ho usato (anche perché è quella del libro
), solo che non funzionaaaa...dai conteeee, c'ho perso tre ore pe sta caxxataaa.... :evil:
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 4
Accepted Answer
Pending Moderation
devi mettere l'INDEX e creare le tabelle con type = InnoDB altrimenti il mySQL nn le gestiscele kiavi esterne.
Prova così:
create table impiegati(
cf char(15) NOT NULL,
primary key(cf)
) TYPE = InnoDB;
create table figli(
nome char(15) NOT NULL,
cf char(15) NOT NULL,
primary key(nome),
INDEX (cf),
foreign key(cf) references impiegati(cf)
) TYPE = InnoDB;
fammi sapere se funzeca
Prova così:
create table impiegati(
cf char(15) NOT NULL,
primary key(cf)
) TYPE = InnoDB;
create table figli(
nome char(15) NOT NULL,
cf char(15) NOT NULL,
primary key(nome),
INDEX (cf),
foreign key(cf) references impiegati(cf)
) TYPE = InnoDB;
fammi sapere se funzeca
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 5
Accepted Answer
Pending Moderation
For storage engines other than InnoDB, MySQL Server parses the FOREIGN KEY syntax in CREATE TABLE statements, but does not use or store it. già già già....però l'ho provato e a quanto pare mi dice che non può creare un certo file tipo .frm o qualcosa del genere. evviva lo standard sql 1999. grazie comunque, adesso provo a mettere oracle
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 6
Accepted Answer
Pending Moderation
Alla grande tex....avevo provato quello che mi hai detto ma aggiungendo solo il comando index e type al mio codice...invece se dopo references impiegati non aggiungi anche (cf) (che in teoria non sarebbe necessario perché il campo in figli ha lo stesso nome) ti dà erroreeeeeeee...ora scusami ma sono un pò commosso :cry: [size=5]GRAZIEEE[/size]
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 7
Accepted Answer
Pending Moderation
/* perle di saggezza*/
Mai dare niente di scontato in campo informatico... .
Mai dare niente di scontato in campo informatico... .
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 8
Accepted Answer
Pending Moderation
Qualcuno è riuscito a creare viste con mysql? Che versione?
Sulla 4.1.6gamma (win32) pare impossibile...è un bug oppure no?
Sulla 4.1.6gamma (win32) pare impossibile...è un bug oppure no?
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 9
Accepted Answer
Pending Moderation
Non ci ho provato ma se vuoi un consiglio usa mysql solo lo stretto indispensabile perché da quello che ho visto è decisamente fuori dallo standard per molti aspetti...
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 10
Accepted Answer
Pending Moderation
Lo so, ma dando un'occhiata ai requisiti di sistema di Oracle mi sono un po' spaventato...e cmq non ho ancora avuto il coraggio di metterci mano
Inoltre mi serve per lavoro...scelta obbligata :? ,
Inoltre mi serve per lavoro...scelta obbligata :? ,
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 11
Accepted Answer
Pending Moderation
Qualcuno è riuscito a creare viste con mysql? Che versione?
Sulla 4.1.6gamma (win32) pare impossibile...è un bug oppure no?
Mi rispondo da solo, nel caso qualcuno abbia magari lo stesso dubbio:
[color=indigo]The CREATE VIEW statement was added in MySQL 5.0.1[/color]MySQL non supporta le viste nella versione 4.1, ovvero nell'ultima stable, ne tantomeno i trigger, e ho dei dubbi sulle stored procedures :shock: ...
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 12
Accepted Answer
Pending Moderation
avevo impiegato tanto a scaricare mysql 4.1 e tu mi vanifichi tutto in 3 secondi? :cry:
ora sto prendendo la 5, sperando che vada bene.
mi sembre di capire che mysql (che non trovo facile da usare!!!) non sia l'unico sw da dover utilizzare per il progetto finale, vero?
ciao e grazie
ora sto prendendo la 5, sperando che vada bene.
mi sembre di capire che mysql (che non trovo facile da usare!!!) non sia l'unico sw da dover utilizzare per il progetto finale, vero?
ciao e grazie
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 13
Accepted Answer
Pending Moderation
Stò facendo un progetto in MySql per l'università.
due tabelle in relazione tra loro.
una tabella cliente che contiene iinformazioni generali sul cliente e una tabella profilo che contiene i dati di reperibilità del cliente.
vorrei fare una koreign kei tra l'ID_profilo della scheda cliente verso la chiave primaria di profilo ( che si chiama sempre ID_profilo).
non mi crea però la foreign key ...
Qualcuno mi può aiutare ?????
ops:
create table (
ID_profilo varchar (6),
n_tel varchar (10)
primary key (ID_profilo)
)engine=InnoDB;
create table cliente(
nome varchar(12),
ID_profilo varchar(6) primary key not null,
index(ID_profilo), foreign key (ID_profilo) references profilo (ID_profilo) on update cascade on delete no action
)engine = InnoDB;
due tabelle in relazione tra loro.
una tabella cliente che contiene iinformazioni generali sul cliente e una tabella profilo che contiene i dati di reperibilità del cliente.
vorrei fare una koreign kei tra l'ID_profilo della scheda cliente verso la chiave primaria di profilo ( che si chiama sempre ID_profilo).
non mi crea però la foreign key ...
Qualcuno mi può aiutare ?????
create table (
ID_profilo varchar (6),
n_tel varchar (10)
primary key (ID_profilo)
)engine=InnoDB;
create table cliente(
nome varchar(12),
ID_profilo varchar(6) primary key not null,
index(ID_profilo), foreign key (ID_profilo) references profilo (ID_profilo) on update cascade on delete no action
)engine = InnoDB;
Comment
There are no comments made yet.
- more than a month ago
- S.O.S. Computer
- # 14
- Page :
- 1
There are no replies made for this post yet.
Be one of the first to reply to this post!
Be one of the first to reply to this post!
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here. Register Here »