Pagina 1 di 1

[RISOLTO]Mysql vincolo check() non funziona

Inviato: martedì 3 giugno 2014, 11:14
da _Shadow_
Buon Giorno a tutti :) sto cercando di creare una tabella Materiali e imporre il vincolo Costo>=0 e Giacenza>=0.
Vi posto la query:

Codice: Seleziona tutto

/*Tabella Materiali*/
CREATE TABLE Materiali(
	IDMateriale INT PRIMARY KEY,
	Tipologia text,
	Marca text,
	Descrizione text NOT NULL,
	Costo INT NOT NULL,
	Giacenza INT NOT NULL,
	CHECK(Costo>=0 AND Giacenza>=0))
ENGINE=InnoDB;
Quando la eseguo crea la tabella senza problemi. Adesso ho provato a fare una query di inserimento ponendo il Costo negativo.
Query:

Codice: Seleziona tutto

INSERT INTO Materiali(IDMateriale,Tipologia,Marca,Descrizione,Costo,Giacenza) VALUES(100,NULL,NULL,'fari abbaglianti',-25,-5); 
Facendo l'inserimento, non mi segnala l'errore, anzi mi dice che l'inserimento e' avvenuto... Il problema e' che accetta inserimenti di Costo e Giacenza negativi.
Riuscite a darmi una mano a risolvere il problema?
Grazie mille :)

Re: Mysql vincolo check() non funziona

Inviato: martedì 3 giugno 2014, 19:59
da Zoff
MySQL non da errore ma non supporta la constrain CHECK, vedi documentazione: " The CHECK clause is parsed but ignored by all storage engines."

Documentazione: http://dev.mysql.com/doc/refman/5.7/en/ ... table.html

Re: Mysql vincolo check() non funziona

Inviato: mercoledì 4 giugno 2014, 17:49
da SuperStep
purtroppo devi farlo da software, oppure cambiare dbms, io consiglio entrambi.

Re: Mysql vincolo check() non funziona

Inviato: giovedì 5 giugno 2014, 22:45
da _Shadow_
Non posso cambiare dbms perchè sto scrivendo un progetto per l'università e devo per forza adoperare mysql.
Grazie per l'aiuto ragazzi.
Chiudo il post :)