problemi con index e foreign key

salve, sto provando ad usare le foreign key per indicare i vincoli d'integrità del database ma ho un problema.. provo a creare una tabella con questo script:

CREATE TABLE IF NOT EXISTS npc (
   id INT(16) UNSIGNED AUTO_INCREMENT,
   name CHAR(100) NOT NULL,
   title CHAR(100),
   faction_id INT(16),
   PRIMARY KEY(id),
   INDEX faction_id_idx (faction_id),   
   FOREIGN KEY(faction_id) REFERENCES faction(id)
) ENGINE = innodb;

ma mi dà quest'errore #1005 - Can't create table '.\wowdb\npc.frm' (errno: 150)..

utilizzo MySQL5 e non riesco a capire quale sia il problema.. ah ovviamente la tabella fation già esiste nel database

grazie mille per le risposte  :)

inviato 10 anni fa
Jack
Jack
1
X 0 X

faction_id e faction.id sono esattamente dello stesso tipo?

Riporta la struttura di faction.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ok, sono veramente poco furbo.. non mi ero accorto che mancava l'attributo UNSIGNED per il campo (che nella tabella faction era impostato)

colgo l'occasione per fare un'altra domanda.. considerando per esempio tabelle contenente un numero di record variabile tra 10000 e 50000 conviene specificare degli index o no? e nello specifico conviene specificare come index le chiavi esterne o cosa?

grazie ancora per le risposte e scusate la niubbaggine con sql, ho molto da imparare ::)

risposto 10 anni fa
Jack
Jack
1
X 0 X

Nuovi argomenti => nuove discussioni

 :bye:

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