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

    [MySQL] vincoli non rispettati.......

    ciao a tutti
    sono nuovo all' sql, sto cercando di creare questa tabella:

    codice:
    CREATE TABLE Auto ( 
            ID                      char(6) primary key NOT NULL,
            modello                 char(30) not null,
            urlPhoto                char(30) not null,
            trasmissione            char(5) not null check(trasmissione in ('autom', 'manual')), 
            aria_condizionata       char(2) not null check(aria_condizionata in ('si','no')),
            porte                   smallint not null,
            passeggeri              smallint default 5,
            patente                 char(1) default 'B' )
    ed infatti la creazione sembra funzionare.. ma quando effettuo un inserimento i vincoli check() sembrano non esistere..

    un aiuto grazzzie

  2. #2
    E' vero. in mysql non funzionano. Esistono solo come sintassi per compatibilita' sql99 ... ma they don't take any action...


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

  3. #3

    e quindi come faccio.. ?!

    allora esiste un altro modo per dare vincoli ai campi?
    spero bene di si.. insomma nn puo' essere altrimenti!

  4. #4

    Re: e quindi come faccio.. ?!

    Originariamente inviato da dopewars
    allora esiste un altro modo per dare vincoli ai campi?
    spero bene di si.. insomma nn puo' essere altrimenti!
    usa dei campi ENUM.

    http://dev.mysql.com/doc/mysql/en/enum.html


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

  5. #5
    da quello che ho capito..
    ENUM mi permette di definire un insieme di valori 'permessi'.

    ma se volessi definire un intervallo (o piu di uno)?

    o anche.. se non volessi permettere l'inserimento di un preciso valore (ad esempio il valore vuoto)?

    grazie dell'aiuto

  6. #6
    Originariamente inviato da dopewars
    da quello che ho capito..
    ENUM mi permette di definire un insieme di valori 'permessi'.

    ma se volessi definire un intervallo (o piu di uno)?

    o anche.. se non volessi permettere l'inserimento di un preciso valore (ad esempio il valore vuoto)?

    grazie dell'aiuto
    Per il valore vuoto puoi (dovresti) controllare il dato all'origine, senza arrivare al db e farsi dire di no, oppure metti un valore di default al campo.

    Definire un intervallo da mysql sinceramente non ho mai provato e su due piedi non avrei idea di come eseguirlo al meglio, preferirei gestirlo da php se possibile.

    La ragione e' che ogni volta che ti andrai a discostare dai valori prefissati, mysql puo' solo avvertirti con un errore, l'errore va gestito, e non e' mai bello programmare basandosi su un errore. Bisogna prevenirlo l'errore e quindo controllare prima se i valori sono nel range desiderato.


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

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.