Topic: Pubblico - Composto da 3 Posts di 2 Utenti.
| 13 Aprile, 2011 16:26 | #1 | ||
|---|---|---|---|
|
Ciao, premetto che in una tabella rendere unico un attributo di tipo boolean non ha senso. CREATE TABLE `myTable` ( in quanto, quando la tabella conterrà un numero di tuple maggiore di 2, ci saranno almeno due valori uguali per l'attributo 'avaiable'. La mia richiesta è questa: come faccio a rendere unico il VALORE di un attributo. SI SI |
|||
| 13 Aprile, 2011 17:08 | #2 | ||
|---|---|---|---|
|
Ciao. Prova a dare uno sguardo a questo codice di esempio che ti ho scritto. 1drop table if exists mytable; 2create table mytable ( 3id int(11) not null auto_increment primary key, 4available tinyint(1) not null 5); 6 7drop table if exists errori; 8create table errori ( 9id int not null auto_increment primary key, 10messaggio varchar(128) default null, 11unique key imess (messaggio) 12) engine=myisam; 13 14 15delimiter // 16drop trigger if exists verifica// 17create trigger verifica before insert on mytable 18for each row 19begin 20 if(select count(*) from mytable where available = 1 > 0 and new.available = 1) then 21 call fallito("esiste gia' un record con valore pari a 1"); 22 end if; 23end// 24delimiter ; 25 26 27delimiter // 28drop procedure if exists fallito // 29create procedure fallito(mess varchar(200)) 30begin 31 insert into errori (messaggio) values (mess); 32 insert into errori (messaggio) values (mess); 33end// 34delimiter ; 35 36 37insert into mytable (available) values (0); 38insert into mytable (available) values (1); 39insert into mytable (available) values (0); 40insert into mytable (available) values (0); 41insert into mytable (available) values (1); No PVT tecnici. Non rispondo nemmeno. Usate il forum. |
|||
| 14 Aprile, 2011 11:43 | #3 | ||
|---|---|---|---|
|
ti ringrazio. Saluti Roy Batty |
|||
Condividi su:
Loggati o Registrati per replicare