Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    query giuste , ma restituiscono un errore dopo averle lanciate.

    ciao a tutti ,
    ho un altro problema con sql , questa volta penso sia innodb.

    ho lanciato le seguenti query :
    codice:
    CREATE TABLE anag_deb  (
    id_anag int unsigned not null auto_increment primary key,
    id_utente int (10),
    codice_cliente varchar (50),
    ragione_soc varchar (255),
    indirizzo varchar (255),
    citta varchar (50),
    provincia varchar (2),
    cod_postale varchar (10),
    telefono_1 varchar (20),
    telefono_2 varchar (20),
    fax varchar (20),
    email varchar (100),
    partita_iva varchar (50),
    cod_fiscale varchar (16),
    rif_debitore varchar (100),
    data_ricevuta date,
    stato_pratica varchar (10),
    foreign key (id_utente) REFERENCES utenti (id_utente)
    );
    __________________________
    CREATE TABLE avanzamento_prat (
    id_avanzamento int unsigned not null auto_increment,
    data_inserimento date,
    id_contabili int (15),
    denominazione varchar (100),
    citta varchar (50),
    provincia varchar (2),
    importo_da_recuperare double ,
    spese_interessi double ,
    importo_recuperato double ,
    spese_recuperate double,
    status_pratica varchar (50),
    stato_attivita varchar (20),
    presunte_proprieta varchar (50),
    protesti varchar (50),
    primary key (id_avanzamento),
    foreign key (id_contabili) REFERENCES contabili (id_contabili)
    );
    entrambe mi hanno lasciato questo output :

    #1005 - Can't create table 'coeri.contabili' (errno: 150) (Dettagli...)
    a qualccuno è gia successo?

    grazie , ciao

  2. #2
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho letto su un topic che è un errore di innodb , ma non ha funzionato inserendo questi valori
    codice:
    CREATE TABLE avanzamento_prat (
    id_avanzamento int unsigned not null auto_increment,
    data_inserimento date,
    id_contabili int (15),
    denominazione varchar (100),
    citta varchar (50),
    provincia varchar (2),
    importo_da_recuperare double ,
    spese_interessi double ,
    importo_recuperato double ,
    spese_recuperate double,
    status_pratica varchar (50),
    stato_attivita varchar (20),
    presunte_proprieta varchar (50),
    protesti varchar (50),
    primary key (id_avanzamento),
    foreign key (id_contabili) REFERENCES contabili (id_contabili) ON DELETE CASCADE 
    )ENGINE=InnoDB ;
    le modifiche in rosso mi cambiano stato errore in 150 , ma non so come fare , sul server gira tutto che è una meraviglia , mentre sul portatile in locale mi da errori come questo ,
    le query le ho testate su un server di produzione e funzionano , mi piacerebbe capire dove e cosa devo configurare!

    grazie

  3. #3
    Non so se quello che fai e' roba tua oppure adattata da qualche altro script, premesso questo direi che per gestire valori monetari sarebbe meglio usare campi decimal(M,D) dove per M si considerano il totale delle cifre e con D il numero dei decimali.

    Es.: decimal(8,2) conterra' valori fino ad un max di € 999999,99.

    Altra considerazione: i campi da usare nella foreign key devono essere dello stesso tipo e dimensione e devono fare riferimento ad un indice. Poi un campo INT puo' avere al max 10 digit, 11 con il segno meno davanti ai numerelli quindi INT(15) e' fuori "portata".

    Se su un pc accetta il default per il motore e un altro pc invece no dipende da come sono impostate le variabili nel file di configurazione. Evidentemente su uno l'engine di default e' MyISAM e sull'altro InnoDB.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao
    Non so se quello che fai e' roba tua oppure adattata da qualche altro script
    è tutta roba mia , lo creata da 0.



    decimal(8,2) conterra' valori fino ad un max di € 999999,99.
    pensavo che bastasse il double , ti ringrazio del suggerimento che applicherò immediatamente come per int!

    i campi da usare nella foreign key devono essere dello stesso tipo e dimensione e devono fare riferimento ad un indice
    ok per lo stesso valore e tipo che mi sembra di averli fatti correttamente. Per quanto riguarda gli indici le chiavi primarie di una tabella diventano secondarie per un'altra, quindi penso che rientrino negli indici
    Se su un pc accetta il default per il motore e un altro pc invece no dipende da come sono impostate le variabili nel file di configurazione. Evidentemente su uno l'engine di default e' MyISAM e sull'altro InnoDB.
    in ufficio quando ho lanciato le query ha creato le tabelle senza storie , mentre nel mio portatile mi ha restituito l'errore , vorrei sapere come e dove faccio a modificare i valori nel file di configurazione di mysql 5.1...
    grazie

  5. #5
    Originariamente inviato da tapu
    in ufficio quando ho lanciato le query ha creato le tabelle senza storie , mentre nel mio portatile mi ha restituito l'errore , vorrei sapere come e dove faccio a modificare i valori nel file di configurazione di mysql 5.1...
    grazie
    file my.ini

    # The default storage engine that will be used when create new tables when
    default-storage-engine= [myisam | innodb]

    e poi si restarta mysql

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Sono arrivato a quest conclusione , conosco niente della configurazione mysql

    ho cambiato dal file my.ini la stringa default-storage-engine=
    con il valore InnoDB.
    ho riavviato il computer , visto che non sapevo come riavviare mysql.

    riapro phpmyadmin e compilo la query :

    codice:
    CREATE TABLE avanzamento_prat (
    id_avanzamento int unsigned not null auto_increment,
    data_inserimento date,
    id_contabili int (15),
    denominazione varchar (100),
    citta varchar (50),
    provincia varchar (2),
    importo_da_recuperare double ,
    spese_interessi double ,
    importo_recuperato double ,
    spese_recuperate double,
    status_pratica varchar (50),
    stato_attivita varchar (20),
    presunte_proprieta varchar (50),
    protesti varchar (50),
    primary key (id_avanzamento),
    foreign key (id_contabili) REFERENCES contabili (id_contabili) ON DELETE CASCADE 
    )ENGINE=InnoDB ;
    ma non va , non mi crea la tabella e mi riporta questo errrore :
    #1005 - Can't create table '.\coeri\avanzamento_prat.frm' (errno: 150) (Dettagli...)
    Per mia pura curiosità faccio

    codice:
    CREATE TABLE avanzamento_prat (
    id_avanzamento int unsigned not null auto_increment,
    data_inserimento date,
    id_contabili int (15),
    denominazione varchar (100),
    citta varchar (50),
    provincia varchar (2),
    importo_da_recuperare double ,
    spese_interessi double ,
    importo_recuperato double ,
    spese_recuperate double,
    status_pratica varchar (50),
    stato_attivita varchar (20),
    presunte_proprieta varchar (50),
    protesti varchar (50),
    primary key (id_avanzamento),
    foreign key (id_contabili) REFERENCES contabili (id_contabili) ON DELETE CASCADE 
    )ENGINE=myisam;
    questa volta me la crea.

    la mia versione di my sql è la 5.0.24 , quella scaricata qui. proma avevo la 5.1 ma avevo letto che non era ancora ben supportata , ma penso che non fosse per quello.

    a me andrebbe anche bene usare myisam peccato che necessito delle relazioni tra tabelle

    AIUTTOOOOOOO

    ho visto in phpmyadmin dal browser la sezione variabili
    dove:
    innodb file per table OFF
    innodb log archive OFF
    potrebbero essere loro che mi bloccano innodb?
    e se si come faccio a modificare il file di configurazione su phpmyadmin ?

    scusate ma sto cercando di capire come mai non riesco a usare inno!

  7. #7
    devi aprire il file my.ini e cerca la sezione che parla delle InnoDB.

    devi modificare secondo il path della tua installazione le righe interessate e togliere il rem ( il # ) davanti alle righe di configurazione delle tabelle InnoDB

    un esempio:

    codice:
    # Uncomment the following if you are using InnoDB tables
    # Qui devi modificare i vari c:\mysql\data/ mettendo il tuo path reale.
    innodb_data_home_dir = C:\mysql\data/     
    innodb_data_file_path = ibdata1:10M:autoextend
    innodb_log_group_home_dir = C:\mysql\data/
    innodb_log_arch_dir = C:\mysql\data/
    # You can set .._buffer_pool_size up to 50 - 80 %
    # of RAM but beware of setting memory usage too high
    innodb_buffer_pool_size = 16M
    innodb_additional_mem_pool_size = 2M
    # Set .._log_file_size to 25 % of buffer pool size
    innodb_log_file_size = 5M
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
    E per non complicarti la vita oltremodo fai pure il restart del pc per riavviare mysql. Se sei incerto sul come fare credo sia meglio.

    se hai tempo e voglia scaricati e installati la GUI TOOLS di Mysql

    http://dev.mysql.com/downloads/gui-tools/5.0.html

    e magari mentre ci sei anche la versione di mysql 5.0.85 che "forse" gia' di default ti abilita le innodb, se non lo fa lei lo farai tu, poco importa.

    http://dev.mysql.com/downloads/mysql/5.0.html#win32

    Quando avrai installato la gui tools troverai una serie di programmi per gestire mysql. Uno si chiama MySql system tray monitor e ti serve per start/stop del server, l'altro Mysql Administrator per modificare con estrema semplicita' il file di configurazione per le tue innodb e molto altro.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Ti ringrazio , sto cominciando a scaricare i pacchetti.

    da quanto ho letto anche la versione che ho io dovrebbe avere di default innodb attivo , e dalle stringhe che ho letto è proprio cosi ...

    ora disinstallo mysql 5.0.24 , riavvio , reinstallo la versione che mi hai consigliato insieme al tools , riavvio e poi ti farò sapere . grazie ancora!

  9. #9
    Originariamente inviato da tapu
    Ti ringrazio , sto cominciando a scaricare i pacchetti.

    da quanto ho letto anche la versione che ho io dovrebbe avere di default innodb attivo , e dalle stringhe che ho letto è proprio cosi ...

    ora disinstallo mysql 5.0.24 , riavvio , reinstallo la versione che mi hai consigliato insieme al tools , riavvio e poi ti farò sapere . grazie ancora!
    dopo che hai disinstallato cancella la cartella di mysql perche' altrimenti potresti trovare il tuo vecchio my.ini ancora ricopiato.

    Il file my.ini non fa parte dell'installazione ma viene creato dopo. La disinstallazione non toglie le cose che non ha messo. Questo e' nell'ottica degli aggiornamenti successivi che vengono poi realizzati sovrascrivendo il vecchio ma salvando le impostazioni utente.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    mannaggia , ho installato la versione di mysql che mi hai passato , il tools (grazie , perchè comodissimo)
    ma nulla la prima tabella utenti la inserisce ma le altra manco per scherzo.

    a sto punto non so...

    il file ibdata1 che mi chiede in fase di configurazione wizard ... che cosa è? potrebbe essere quello che da problemi ?
    ho guardato io ho una cartella in c: chiamata MySQL Datafiles con all'interno quel file.
    andando nel file my.ini ho notato che ti chiede 2 path .. non è che per caso devo mettergli quella???
    questa e la prima stringa sotto innodb di my.ini
    #Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Programmi/MySQL/MySQL Server 5.0/"
    questa è la seconda
    #Path to the database root datadir="C:/Programmi/MySQL/MySQL Server 5.0/Data/"
    sempre spulciando il file ho visto anche questa:
    # Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    no_engine_substition?? non va ad interferire nell'inserimento di ENGINE=INNODB?

    scusa ma di mysql non sono una cima e molte stringhe per la configurazione non le conosco!|

    forse sbaglio solo le quary ?:

    prima creo utenti:
    codice:
    CREATE TABLE utenti (
    id_utente int (10) unsigned not null auto_increment,
    user_name varchar (50),
    password varchar (20),
    denominazione varchar (255),
    indirizzo varchar (255),
    citta varchar (50),
    util01 varchar (100),
    util02 varchar (100),
    last_login timestamp,
    primary key (id_utente)
    ) ENGINE=INNODB;
    e la crea senza problemi

    poi creo anag_deb
    codice:
    CREATE TABLE anag_deb  (
    id_anag int unsigned not null auto_increment primary key,
    id_utente int (10),
    codice_cliente varchar (50),
    ragione_soc varchar (255),
    indirizzo varchar (255),
    citta varchar (50),
    provincia varchar (2),
    cod_postale varchar (10),
    telefono_1 varchar (20),
    telefono_2 varchar (20),
    fax varchar (20),
    email varchar (100),
    partita_iva varchar (50),
    cod_fiscale varchar (16),
    rif_debitore varchar (100),
    data_ricevuta date,
    stato_pratica varchar (10),
    foreign key (id_utente) REFERENCES utenti (id_utente) ON DELETE CASCADE
    )ENGINE=INNODB;
    e da l'errore!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.