Articoli, news e pillole sul mondo LAMP e l'opensource. Pillole di C#
MySQL, DB Server
MySQL, il database opensource più diffuso nel mondo, attualmente con la versione 5.0 stabile lancia la sfida ad Oracle e compagnia bella…
MySQL 5, utilizzo dei TRIGGER
11 Jul
Finalmente trovo il tempo di pubblicare un articolo…
Vediamo di seguito l’utilizzo dei TRIGGER in mysql 5, se non dico male infatti sino alla versione 5.0.x i TRIGGER su mysql non erano disponibili.
Prima di tutto, a cosa servono i TRIGGER? I TRIGGER hanno il principale scopo di automatizzare determinate operazioni sul database all’occorrenza di determinati eventi come INSERT, UPDATE o DELETE.
Il modo con cui creare un TRIGGER è piuttosto semplice:
CREATE TRIGGER setnoprice BEFORE UPDATE ON prodotto
FOR EACH ROW
BEGIN
IF NEW.online = ‘no’ THEN
SET NEW.prezzo = 0;
END IF;
END
Analizziamo cosa fa di fatto questo TRIGGER, al di là della sintassi:
Ipotizziamo di avere ad esempio un sito di e-commerce dal quale i prodotti sono acquistabili esclusivamente quando il loro prezzo è maggiore di zero, mentre sono online altri prodotti per il quale esiste una presentazione ma l’acquisto può essere fatto contattando l’ufficio commerciale e non viene esposto il prezzo.
Conseguentemente quando un prodotto va offline è automatico che non sia più vendibile. La soluzione più classica e semplice (apparentemente) è quella di gestire l’operazione direttamente da backoffice dell’applicativo in modo automatico o peggio ancora di delegare al gestore del backoffice il fatto di resettare a zero il prezzo quando un prodotto va offline.
[Piccolo inciso, so benissimo che potrebbe essere bloccato l'acquisto oltre che per prezzo a zero anche nel caso il flag online sia off, così come so che il prodotto non sarebbe nemmeno visualizzato, ma un'esempio lo dovevo fare...
]
Entrando nel dettaglio mysql applicando questo TRIGGER si preoccupa di eseguire PRIMA [BEFORE] dell’azione UPDATE [solo update quindi] la verifica se online diventerà uguale a off e in tal caso forza il nuovo valore di prezzo a zero.
In sostanza il TRIGGER va a sostituire quelle operazioni automatiche che normalmente vengono delegate all’applicativo.
Per maggiori informazioni potete consultare direttamente il manuale di mysql alla pagina relativa ai TRIGGER.
Ricerca due consulenti PHP Senior
17 Jun
Coresis, società presso la quale lavoro sta ricercando nell’ambito di un progetto della durata stimata di 6 mesi, due programmatori php senior che si recheranno presso un importante cliente di Milano.
Si richiedono le seguenti competenze:
- Esperienza di almeno 4 anni in ambito php/MySQL
- Ottima conoscenza di php
- Ottima conoscenza di mysql
- Gradita conoscenza del framework di sviluppo symfony: http://www.symfony-project.org/
- Buona capacità di lavorare in team e buona capacità di proporsi in modo attivo
Per le persone interessate si prega di inviare CV e disponibilità all’indirizzo email:
Convertire un database PostgreSQL in MySQL e viceversa
10 May
La conversione di un database PostgreSQL in mysql e viceversa non è un’operazione esattamente banale.
Nel senso che a differenza della conversione da SQL Server a mysql o da Access ad esempio, per i quali esiste il tool realizzato direttamente da mysql, mysql Migration Toolkit, per PostgreSQL questo software non ci aiuta.
Durante la ricerca di qualcosa di ben funzionante mi sono imbattuto in:
DB Convert for mysql and PostgreSQL 2.0.x
Questo software consente in modalità trial di importare solo 10 record per tabella. E’ sufficiente nel caso sia necessario solo ripristinare la struttura, nel caso import di dati invece risulta insufficiente.
Per poter disporre delle funzionalità complete è sufficiente acquistarlo ad una cifra ragionevole di 69 dollari.
Il software dopo l’installazione consente una comoda migrazione di tutto quanto. La migrazione può essere bidirezionale.
La stessa software house propone altri tool come il sync.
Sono disponibili inoltre migrazioni da svariati altri database.
Per maggiori informazioni: http://www.dbconvert.com
Novita’ partizionamento su MySQL 5.1
3 Jan
A partire dalla versione 5.1 mysql supportera’ praticamente per tutti i tipi di storage engine il partizionamento.
La versione 5.1 di mysql e’ al momento in release candidate.
Spero che nell’arco di 3/4 mesi possa uscire la prima release stabile.
Il partizionamento rappresenta una novita’ per il design di database in mysql molto forte e utile, soprattutto quando i record sono tanti.
Vi rimando ad un articolo stupendo che spiega benissimo (in inglese, ma e’ facile…
) i vantaggi che si possono ottenere lavorando con i partizionamenti.
Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com
MySQL, eseguire una INSERT che esegua update in caso di valori duplicati
3 Dec
In mysql, ma più in generale con l’SQL è possibile far eseguire al database una INSERT che, nel caso vi sia un duplicato con i valori passati, provveda ad eseguire un’UPDATE sul database.
Ad esempio:
$sql = “INSERT INTO tbl SET
a = 2,
b = 2,
c = 10
ON DUPLICATE KEY UPDATE b = b + “.$b;
In questo caso se una chiave primaria o più genericamente un indica UNIQUE dovesse verificare la presenza di un valore duplicato verrà eseguito un UPDATE che aggiorna il campo ‘b’ sommandogli il valore di $b.
Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com