PDA

View Full Version : [SQL]Create Table


Gogeta ss4
02-07-2005, 20:53
Ciao a tutti, siccome ho sempre lavorato in access non so fare alcune cose

Sto facendo un progetto in php e mysql, e siccome dichiaro le tabelle da codice mi chiedevo come si fareccero tali cose con il create table:

1)Campo Memo (campo che ammette infiniti caratteri)
2)Campo chiave esterna che non ametta duplicati (mi serve per l'associazione 1->1)

Clauser
02-07-2005, 21:00
per la 2) se non ricordo male devi dichiararlo UNIQUE

anonimizzato
03-07-2005, 10:47
Ciao a tutti, siccome ho sempre lavorato in access non so fare alcune cose

Sto facendo un progetto in php e mysql, e siccome dichiaro le tabelle da codice mi chiedevo come si fareccero tali cose con il create table:

1)Campo Memo (campo che ammette infiniti caratteri)
2)Campo chiave esterna che non ametta duplicati (mi serve per l'associazione 1->1)

1) un campo che ammetta infinti caratteri non esiste al max c'è LONGTEXT con il quale puoi inserire sino a 4,294,967,295 caratteri.

2) puoi usare l'indice "unique" o "primary key", sono identici tranne che per il fatto che di primary key in una tabella può esisterne solo una.

Gogeta ss4
03-07-2005, 12:43
Stavo pensando a una cosa, se io dichiaro una tabella che ha la chiave esterna per collegarsi ad un'altra tabella che ancora non esiste, mysql come fa a collegare le due tabelle??
Fa il collegamento una volta che trova l'altra tabella?'
Es: prova e' collegata con prova1 (nel references c'e' prova1) ma prova1 non esiste ancora, crea il collegamento tra prova e prova1 non appena viene creata la tabella prova1??

beppegrillo
03-07-2005, 13:17
Stavo pensando a una cosa, se io dichiaro una tabella che ha la chiave esterna per collegarsi ad un'altra tabella che ancora non esiste, mysql come fa a collegare le due tabelle??
Fa il collegamento una volta che trova l'altra tabella?'
Es: prova e' collegata con prova1 (nel references c'e' prova1) ma prova1 non esiste ancora, crea il collegamento tra prova e prova1 non appena viene creata la tabella prova1??
te lo vieta :)

anonimizzato
03-07-2005, 14:53
perdonatemi ma mi spieghereste bene il concetto di chiave esterna?
è diverso dagli indici di MySQL?

Grazie.

Gogeta ss4
03-07-2005, 15:52
te lo vieta :)

ehm, nn mi ha dato nessun errore!
E poi se me lo vietasse come farei a fare la relazione??

Gogeta ss4
03-07-2005, 15:54
perdonatemi ma mi spieghereste bene il concetto di chiave esterna?
è diverso dagli indici di MySQL?

Grazie.

La chiave esterna e' quella chiave che serve per collegare due tabelle (padre-figlio) che hanno una relazione, per esempio:

prodotti-produttori, un prodotto e' fornito da un solo produttore ma il produttore fornisce piu' prodotti. Questa e' un associazione m <- 1
In questo caso per collegare le due tabelle, prodotti essendo figlio di produttori avra' come chiave esterna la chiave principale di produttori :)

Spero di essere stato chiaro :D

beppegrillo
03-07-2005, 16:30
ehm, nn mi ha dato nessun errore!
E poi se me lo vietasse come farei a fare la relazione??
ti vieta l'inserimento di tuple all'interno di quella tabella non avendo la foreign key, altrimenti l'integrità referenziale andrebbe a farsi friggere.

Brazorv
03-07-2005, 16:35
ehm, nn mi ha dato nessun errore!
E poi se me lo vietasse come farei a fare la relazione??
ti ha fatto creare una tabella che ne referenzia una che non è stata ancora creata?

Gogeta ss4
03-07-2005, 17:52
ti ha fatto creare una tabella che ne referenzia una che non è stata ancora creata?

Si, ma credo che se credo tutto contemporaneamente il problema si risolva!