Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    170

    [MySQL] Clausola check non memorizzata

    Sto utilizzando MySQL da Ubuntu, tramite la console ed ho fatto le CREATE TABLE, che sono andate a buon fine, senza warnings.
    Il problema è ke non viene memorizzata una clausola check, anke se viene accettata (non vengono segnalati errori, nè warnings all'esecuzione della create table):

    codice:
    CREATE TABLE Spettatore(
    	NPassaporto	CHAR(9) PRIMARY KEY,
    	Cognome		VARCHAR(20) NOT NULL,
    	Nome		VARCHAR(20) NOT NULL,
    	Data_nascita	DATE NOT NULL,
    	Numero_eventi	INTEGER NOT NULL,
    	CHECK (Numero_eventi>=0) AND (Numero_eventi<=63)
    	) ENGINE=InnoDB;
    Facendo il dump del database con mysqldump, non viene messa la clausola CHECK: ciò vuol dire che non è stata memorizzata al momento della creazione della tabella.
    N.B. Devo usare necessariamente InnoDB perchè nel database ci sono diverse tabelle con chiavi esterne.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Purtroppo i check con mysql non hanno alcun effetto.

    http://dev.mysql.com/doc/refman/5.0/...ate-table.html

    The CHECK clause is parsed but ignored by all storage engines
    Devi ricorrere ai trigger.
    Qui trovi un esempio

    http://forum.html.it/forum/showthrea...hlight=trigger

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    170
    Ok, grazie mille!

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.