Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Windows Server 2000/2003/2008, IIS
[sql server] L'istruzione INSERT è in conflitto con il vincolo FOREIGN...
mercoledì 11 dicembre 2013 - 17.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
mer 11 dic 2013 - 17:54
Ciao a tutti
Ho creato 2 tabelle:
tbConfLocalitaTuristiche
id(chiave di tipo bigint e con identity=Sì)
codice_comune(nvarchar(6))
tbStrutture
id(bigint e con identity=Sì)
codice_struttura(campo chiave di tipo nvarchar(30))
fk_localita(bigint che ammette valori null)
Ho definito una relazione tra le due tabelle:
Tabella di chiave primaria: tbConfLocalitaTuristiche -> id
Tabella di chiave esterna: tbStrutture -> fk_localita
Quando eseguo la insert:
INSERT INTO tbStrutture ( codice_struttura, fk_localita, data_inserimento, data_ultima_modifica, ip_inserimento, ip_ultima_modifica, user_inserimento, user_ultima_modifica) VALUES ( 'VPS630467d7cb8043', '069', GETDATE(), GETDATE(), '::1', '::1', 'xxx', 'xxx')
Ricevo questo errore:
L'istruzione INSERT è in conflitto con il vincolo FOREIGN KEY "FK_tbStrutture_tbConfLocalitaTuristiche". Il conflitto si è verificato nella tabella "dbo.tbConfLocalitaTuristiche", column 'id' del database "XXX".
Se nella relazione imposto:
Verifica dati esistenti durante la creazione o la riabilitazione=No
Attiva vincolo della chiave esterna=No
La query viene eseguita.
Non capisco perchè mi da errore quando eseguo la insert se ho impostato quelle due proprietà a Sì.
Grazie mille
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
sab 11 gen 2014 - 21:55
>Ciao a tutti
>Ho creato 2 tabelle:
>
>tbConfLocalitaTuristiche
>id(chiave di tipo bigint e con identity=Sì)
>codice_comune(nvarchar(6))
perchè in questa tabella deve già essere stata inserita la riga con id = 69 prima di inserire la riga nella tbStrutture, di fatto hai creato una relazione 1 a molti, dove per una riga di tbConfLocalitaTuristiche possono esistere 1 o più righe di tbStrutture. La foreign key (fk) serve proprio ad attivare un vincolo che ti permetta di avere dati consistenti nel tempo.
Ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !