[JAVA e MySql] Errore can't create table

Androidino

Utente Attivo
16 Gen 2014
30
1
0
Ciao, devo creare due tabelle collegate fra loro, lo faccio con queste istruzioni (uso Java):
Codice:
	 st.executeUpdate("CREATE TABLE IF NOT EXISTS Menu (\n"
                + "\n"
                + "menuId INT UNSIGNED NOT NULL AUTO_INCREMENT,\n"
                + "\n"
                + "productId INT UNSIGNED NOT NULL,\n"
                + "\n"
                + "menuName VARCHAR (20) NOT NULL,\n"
                + "\n"
                + "FOREIGN KEY (productId) REFERENCES Products (productId),\n"
                + "\n"
                + "PRIMARY KEY (menuId)\n"
                + ");");
        st.executeUpdate("CREATE TABLE IF NOT EXISTS Products (\n"
                + "\n"
                + "productId INT UNSIGNED NOT NULL AUTO_INCREMENT,\n"
                + "\n"
                + "menuId INT NOT NULL,\n"
                + "\n"
                + "productName VARCHAR (40) NOT NULL,\n"
                + "\n"
                + "productPrice REAL(4,2) UNSIGNED NOT NULL,\n"
                + "\n"
                + "FOREIGN KEY (menuId) REFERENCES Menu (menuId),\n"
                + "\n"
                + "PRIMARY KEY (productId)\n"
                + "\n"
                + ");");
Ma ottengo questo errore:

java.sql.SQLException: Can't create table 'TableManager.Menu' (errno: 150)

Mi sapete dire qual è il problema? Credo abbia a che fare con la FOREIGN KEY perché prima quando non l'avevo messa funzionava. Il punto è che le due tabelle devono essere collegate, in quanto Menu non è altro che un contenitore di Products...

Io inserisco un menu e poi in questo menu devono esserci un certo numero di prodotti, quindi ho pensato di usare le foreign key per fare questa join ma sto sbagliando qualcosa...
Grazie
 
Ciao mi sa che hai sbagliato sezione, mi sembra più un problema di SQL, il fatto che tu lo esegua in java è un dettaglio.

ciao
 
puoi creare le due tabelle senza il riferimento alla foreign key (nella prima) e dopo,

Codice:
ALTER TABLE Menu add FOREIGN KEY (productId) REFERENCES Products (productId)
ciao
Marino
 

Discussioni simili