Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema Valore Default DECIMAL

    Ciao a tutti, scrivo perché sto imparando dal libro "SQL" di Marco Ferrero, e riscontro una differenza. Mi spiego: ho creato una tabella Movimenti con la seguente Query:

    codice:
    CREATE TABLE Movimenti
    (Codice INT  NOT NULL  PRIMARY KEY  AUTO_INCREMENT,
    Banca CHAR(8),
    Conto CHAR(5),
    Tipo CHAR(3),
    Num CHAR(3),
    Valuta DATETIME,
    Importo DECIMAL(8,2) NOT NULL,
    Causale VARCHAR(20),
    Descrizione VARCHAR(50))
    Il problema è che quando fa DESCRIBE Movimenti, lui fa vedere che il risultato della query mostra che il valore di default di Importo è 0.00, mentre a me esce Null (come a tutti gli altri campi, nonostante sia NOT NULL).
    È normale? Dove sbaglio? GRAZIE!

  2. #2
    se non metti il default su campo not null ti dira' nessuno non NULL

    Importo DECIMAL(8,2) NOT NULL default '0',

    Il fatto che assegni o meno il default dipende sia dalla versione di mysql che dall'mpostazione di SQL-MODE. Tieni anche presente che il libro parla di SQL e quindi potrebbe essere un testo generalista che va bene per vari tipi di server.

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

  3. #3
    Originariamente inviato da piero.mac
    se non metti il default su campo not null ti dira' nessuno non NULL

    Importo DECIMAL(8,2) NOT NULL default '0',

    Il fatto che assegni o meno il default dipende sia dalla versione di mysql che dall'mpostazione di SQL-MODE. Tieni anche presente che il libro parla di SQL e quindi potrebbe essere un testo generalista che va bene per vari tipi di server.
    Ciao, il libro spiega espressamente di riferirsi a MySQL versione 5 (è del 2004, il testo), poiché è gratuito.
    La mia versione di MySQL è 5.1 (in realtà ho installato anche la 5.5, ma per un motivo che non riesco a capire, quando creo la connessione fa riferimento sempre alla 5.1).
    Non so cosa sia SQL-MODE...

  4. #4
    Originariamente inviato da istrice95
    Ciao, il libro spiega espressamente di riferirsi a MySQL versione 5 (è del 2004, il testo), poiché è gratuito.
    La mia versione di MySQL è 5.1 (in realtà ho installato anche la 5.5, ma per un motivo che non riesco a capire, quando creo la connessione fa riferimento sempre alla 5.1).
    Non so cosa sia SQL-MODE...
    un libro del 2004 per mysql 5.0 forse e' stato scritto basandosi solo su specifiche di massima. E' comunque obsoleto.

    Mysql a differenza (per esempio) di apache e php, con le variabili di sistema ragiona diversamente cioe' tutto quello che non e' esplicitamente configurato viene assunto dal suo default. E' forse piu' complicato da gestire per via che non hai un elenco di variabili di sistema da modificare, ma sei tu che devi andarti a cercare la variabile necessaria e modificarla. Per questo serve il manuale ufficiale che purtroppo pero' e' solo in inglese.

    Dai una lettura al tutorial di Luca200 ti puo' essere utile.

    http://database.html.it/guide/leggi/87/guida-mysql/

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

  5. #5
    Originariamente inviato da piero.mac
    un libro del 2004 per mysql 5.0 forse e' stato scritto basandosi solo su specifiche di massima. E' comunque obsoleto.

    Mysql a differenza (per esempio) di apache e php, con le variabili di sistema ragiona diversamente cioe' tutto quello che non e' esplicitamente configurato viene assunto dal suo default. E' forse piu' complicato da gestire per via che non hai un elenco di variabili di sistema da modificare, ma sei tu che devi andarti a cercare la variabile necessaria e modificarla. Per questo serve il manuale ufficiale che purtroppo pero' e' solo in inglese.

    Dai una lettura al tutorial di Luca200 ti puo' essere utile.

    http://database.html.it/guide/leggi/87/guida-mysql/
    Ciao, grazie per la risposta e per la segnalazione.
    Probabilmente hai ragione tu per quanto riguarda il fatto che si basi su specifiche di massima, perché in realtà il libro parla di SQL (in generale), anche se come server usa MySQL.
    Comunque, il libro è scritto in modo chiaro, quindi credo che continuerò a leggerlo, soprattutto se mi confermi che quella differenza per quanto riguarda il "null" e il valore di default potrebbe essere dovuta alla differenza di versione (oltretutto, l'immagine che lui fa vedere sembrerebbe non combaciare con il testo della query che dice di aver usato, anche per altri lati che non sto a dire (per esempio mostra che "banca" è varchar, mentre la query indicava CHAR)). Quindi è possibilissimo che abbia aggiunto la definizione DEFAULT = '0' senza dirlo. Grazie, ciao

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