[RISOLTO]Mysql vincolo check() non funziona

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
_Shadow_
Prode Principiante
Messaggi: 122
Iscrizione: venerdì 5 luglio 2013, 18:59
Distribuzione: Xubuntu 14.04.3 LTS
Sesso: Maschile

[RISOLTO]Mysql vincolo check() non funziona

Messaggio 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 :)
Ultima modifica di _Shadow_ il giovedì 5 giugno 2014, 22:46, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Mysql vincolo check() non funziona

Messaggio 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
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Mysql vincolo check() non funziona

Messaggio da SuperStep »

purtroppo devi farlo da software, oppure cambiare dbms, io consiglio entrambi.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
_Shadow_
Prode Principiante
Messaggi: 122
Iscrizione: venerdì 5 luglio 2013, 18:59
Distribuzione: Xubuntu 14.04.3 LTS
Sesso: Maschile

Re: Mysql vincolo check() non funziona

Messaggio 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 :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti