Mysql version 4.1.8

Salve a tutti.

Ho istallato sul mio Computer  WAMP5 che contiene Mysql 4.1.8-2t-log-extension:mysqli.

Il problema che ho è il seguente.

Quando vado a creare le tabelle, nel prompt dei comandi di mysql,ad un tratto,non mi è permesso + scrivere altre parole anche se ho la necessità di introdurre altri atrributi.

Come posso  fare?

Arrivederci

inviato 10 anni fa
flaky
X 0 X

prova ad usare phpMyAdmin o un altro client MySQL, tipo SQLYog (c'è una versione gratuita)

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho cercato di usare phpmyadmin,e dopo aver creato la tabella, ho cliccato sulla voce modifica per inserire due foreign key riguardanti due attributi,e quando ho cliccato su esegui,mi ha dato un problema,che riguardava' la tabella già esiste'. Allora l' ho eliminata,però appena ho cliccato di nuovo esegui mi ha dato di nuovo errore(Tipo non è possibile creare......);

Però il fatto è che ho già creato una tabella con una sola foreign key e mi ha creato la tabella senza problemi,ora che ne ho inserite due(di foreign key) non mi vuole funzionare....

 :'(

         .

risposto 10 anni fa
flaky
X 0 X

E' difficile aiutarti se non riporti esattamente gli errori che ricevi.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

allora se io scrivo

create table posto(IDcinema char(2) not null,

Codsala int(3) unsigned not null,

Codposto decimal(3) unsigned not null,

primary key(IDcinema,Codsala,Codposto);

foreign key( IDcinema) references cinema(IDcinema),

foreign key(Codsala) references sala(Codsala)

)TYPE=InnoDB.

premo invio,e mi da come risultato il seguente errore:

            Can't create table m'.gestione\posto.frm' (errno:150)

dove gestione è il nome del database

risposto 10 anni fa
flaky
modificato 10 anni fa
X 0 X

L'errore potrebbe essere causato dall'impossibilità di realizzare le FK che hai inserito. Uno dei possibili motivi potrebbe essere l'assenza di un indice per i campi delle tabbelle che stai referenziando. Tieni presente che le FK si possono fare solo tra campi con un indice.

Per il campo della tabella che stai creando e che legherai con una FK, MySQL provvede automaticamente a creare un indice se non c'è già.

Questo però non avviene con la tabella referenziata che DEVE essere già indicizzato "a mano", ovvero devi creare un indice per il campo prima di referenziarlo con una FK di una nuova tabella.

Se la FK viene fatta referenziando una PK di una tabella allora non ci sono problemi perché una PK è già indicizzata al momento della creazione.

FK = foreing key

PK = primary key

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ritornando all'esempio:

create table posto(IDcinema char(2) not null,

Codsala int(3) unsigned not null,

Codposto decimal(3) unsigned not null,

primary key(IDcinema,Codsala,Codposto);

foreign key( IDcinema) references cinema(IDcinema),

foreign key(Codsala) references sala(Codsala)

)TYPE=InnoDB.

Ho provato a creare l'indice:

create table posto(IDcinema char(2) not null,

Codsala int(3) unsigned not null,

Codposto decimal(3) unsigned not null,

primary key(IDcinema,Codsala,Codposto);

INDEX(IDcinema),

INDEX(Codsala)

foreign key( IDcinema) references cinema(IDcinema),

foreign key(Codsala) references sala(Codsala)

)TYPE=InnoDB.

Ma mi d alo stesso errore di prima,cioè:

Can't create table m'.gestione\posto.frm' (errno:150)

risposto 10 anni fa
flaky
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda