Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171

    mysql - errore query creazione tabella

    ciao
    dov'è l'errore?
    codice:
    CREATE TABLE `tabella1`
    	(
    	`id`     int(11)  NOT NULL,
    	`campo1` int(3)   NOT NULL default '0',
    	`campo2` int(3)   NOT NULL default '0',
    	`campo3` int(11)  NOT NULL default '0',
    	PRIMARY KEY (`id`)
    	)
    	TYPE=InnoDB;
    
    CREATE TABLE `tabella2`
    	(
    	`id_2`   int(11)      NOT NULL auto_increment,
    	`id_1`   varchar(255) default '',
    	`campo1` int(3)       NOT NULL default '0',
    	`campo2` int(3)       NOT NULL default '0',
    	`campo3` int(11)      NOT NULL default '0',
    	PRIMARY KEY (`id_2`, `id_1`),
    	FOREIGN KEY (`id_1`) REFERENCES tabella1 (`id`) ON DELETE CASCADE
    	)
    	TYPE=InnoDB AUTO_INCREMENT=0;
    Messaggio di MySQL:


    #1005 - Can't create table './database/tabella2.frm' (errno: 150)


    grazie

  2. #2
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    scusate ho corretto il campo id_1 di tab2

    CREATE TABLE `tabella2` (

    `id_2` int( 11 ) NOT NULL AUTO_INCREMENT ,
    `id_1` int( 11 ) NOT NULL ,
    `campo1` int( 3 ) NOT NULL default '0',
    `campo2` int( 3 ) NOT NULL default '0',
    `campo3` int( 11 ) NOT NULL default '0',
    PRIMARY KEY ( `id_2` , `id_1` ) ,
    FOREIGN KEY ( `id_1` ) REFERENCES tabella1( `id` ) ON DELETE CASCADE
    ) TYPE = InnoDB AUTO_INCREMENT =0

    ma non funz lo stesso

  3. #3
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    CREATE TABLE `tabella2` (
    `id_2` int( 11 ) NOT NULL AUTO_INCREMENT ,
    `id_1` int( 11 ) ,
    `campo1` int( 3 ) NOT NULL default '0',
    `campo2` int( 3 ) NOT NULL default '0',
    `campo3` int( 11 ) NOT NULL default '0',
    PRIMARY KEY ( `id_2` ) ,
    INDEX ( `id_1` ) ,
    FOREIGN KEY ( `id_1` ) REFERENCES tabella1( `id` ) ON DELETE CASCADE
    ) TYPE = InnoDB AUTO_INCREMENT =0

    Prova a modificare la chiave primaria e aggiungere un indice su id_1, dovrebbe funzionare
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  4. #4
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Rettifico funziona anche cosi'
    codice:
    CREATE TABLE `tabella2` (
    `id_2` int( 11 ) NOT NULL AUTO_INCREMENT ,
    `id_1` int( 11 ) ,
    `campo1` int( 3 ) NOT NULL default '0',
    `campo2` int( 3 ) NOT NULL default '0',
    `campo3` int( 11 ) NOT NULL default '0',
    PRIMARY KEY ( `id_2` , `id_1` ) ,
    INDEX ( `id_1` ) ,
    FOREIGN KEY ( `id_1` ) REFERENCES tabella1( `id` ) ON DELETE CASCADE
    ) TYPE = InnoDB AUTO_INCREMENT =0;
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  5. #5
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    grazie 1000

  6. #6
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Prego
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.