Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774

    [my sql] - problemone con le foreign keys

    ciao a tutti,
    sto cercando di creare una tabella in mysql ma mi da un problema quando cerco di definire una chiave esterna.
    La tabella è di tipo InnoDB quindi dovrebbe funzionare e invece mi dice che non riesce a crearla (err 1005).
    non capisco....
    qualcuno sa dirmi come mai?
    posto qui sotto il codice.
    grazie mille

    codice:
    CREATE TABLE annunci (
      id				int(5)			NOT NULL,
      data			date 			NOT NULL 		default '0000-00-00',
      data_scadenza 	date 			NOT NULL 		default '0000-00-00',
      id_venditore		varchar(5) 		NOT NULL 		default '',
      id_agente		varchar(5) 					default NULL,
      venduto			int(1) 		NOT NULL 		default '0',
      tipologia 			varchar(50)	NOT NULL 		default '',
      metratura			int(3) 		NOT NULL 		default '0',
      condizioni 		varchar(50) 	NOT NULL 		default '',
      provincia 			varchar(100) 	NOT NULL 		default '',
      indirizzo 			varchar(100) 	NOT NULL 		default '',
      descrizione		text 			NOT NULL,
      prezzo			int(10) 		NOT NULL 		default '0',
      foto1 			varchar(20) 				default NULL,
      foto2			varchar(20) 				default NULL,
      foto3 			varchar(20) 				default NULL,
      foto4			varchar(20) 				default NULL,
      richieste 			int(6) 		NOT NULL 		default '0',
    
      PRIMARY KEY  (id),
      FOREIGN KEY (id_agente) REFERENCES utenti(id) ON DELETE {SET NULL}
    ) ENGINE=InnoDB;

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    ON DELETE {SET NULL}
    perché quelle graffe??

  3. #3
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    Originariamente inviato da luca200
    perché quelle graffe??
    ho letto nel manuale che la sintassi è quella...
    cmq sia non funziona nemmeno se le tolgo...
    e neppure se elimino del tutto la clausola "ON DELETE".
    a cosa può essere dovuto?

  4. #4
    Originariamente inviato da citrus
    ho letto nel manuale che la sintassi è quella...
    cmq sia non funziona nemmeno se le tolgo...
    e neppure se elimino del tutto la clausola "ON DELETE".
    a cosa può essere dovuto?

    che errore ti restituisce??

  5. #5
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    mi sembra che id_agente dev'essere un indice, poi id_utente nell'altra tabella è una chiave primaria?

  6. #6
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    Originariamente inviato da dinucciarturo
    che errore ti restituisce??
    ciao
    ecco l'errore:

    codice:
    #1005 - Can't create table '.\home_finder\annunci.frm' (errno: 150)

  7. #7
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    Originariamente inviato da kuarl
    mi sembra che id_agente dev'essere un indice, poi id_utente nell'altra tabella è una chiave primaria?
    che io sappia non è necessario che sia un indice...
    id_agente referenzia la tabella utenti tramite la sua chiave primaria id.
    a me sembra giusto...
    eppure un errore ci deve essere altrimenti funzionerebbe
    mannaggia
    qualche idea?

  8. #8

  9. #9
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    Originariamente inviato da citrus
    che io sappia non è necessario che sia un indice...
    ma perchè non provi?

  10. #10
    Utente di HTML.it L'avatar di citrus
    Registrato dal
    Feb 2002
    Messaggi
    774
    mmmmmm interessante,
    ma ho paura che non sia il mio caso...
    se ho capito bene infatti il tizio aveva referenziato una chiave con attributo UNIQUE con un campo segnato come UNSIGNED (che onestamente non so neppure cosa voglia dire :P) e questo creava un'inconsistenza sul tipo di campi.
    però io non ho dato nessun attributo specifico ne all'uno ne all'altro quindi non credo sia quello il problema.
    ma potrei sempre sbagliarmi..
    voi che dite?
    intanto grazie mille per l'interessamento

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.