Si tratta pur sempre di una traduzione: alcune parole ci sono, altre no, la sintassi è tutta diversa, la semantica resta quasi invariata ma ovviamente non si può garantire l’esatta corrispondenza…
Ovvero. Dei miei colleghi mi hanno proposto di tradurre il “Padre Nostro” in SQL. Visto che finirò all’inferno comunque, tanto vale accontentarli.
Dopotutto si tratta di un po’ di richieste precedute da una fase di “incensamento” (nel senso ecclesiastico del termine) che fa da captatio benevolentiae.
UPDATE padre AS p SET p.nome = 'santificato', p.posizione_regno = 'qui', p.volonta_nei_cieli = 'done', p.volonta_sulla_terra = 'done' WHERE p.id = '0' AND p.posizione = 'cieli'; SELECT n.pane_quotidiano FROM nostro AS n WHERE n.data = 'oggi'; UPDATE nostro AS n SET n.debiti = NULL, n.debitori = NULL; TRUNCATE TABLE tentazioni; DROP TABLE male;
Giusto per non finire troppo in fretta questo post: le tabelle necessarie sono 4. “Padre” (che contiene i campi id, nome, posizione_regno, posizione, volonta_nei_cieli, volonta_sulla_terra), “nostro” (con i campi panequotidiano, data, debiti, debitori), “tentazioni” e “male” (di queste ultime due non se ne sa niente… e del resto è giusto così).
La tabella “nostro” è un po’ sgangherata, contenendo informazioni senza alcuna struttura (se dovessimo voler aggiungere qualche cosa alla tabella, dovremmo aggiungere un’intera nuova colonna). Quindi il nostro data model (e relative query) è perfettibile. Vedremo cosa si può fare… :)
frankeyboard
10 settembre 2009
Certo, il nostro data-model è perfettibile! Invece il Suo no: per questo che, uno degli ultimi Suoi costrutti fornisce un CASE utile per rimediare alla tua affermazione di partenza e gestire anche la proprietà location della classe Me.
Non ti preoccupare, lo so che inizialmente Me.location era definita read-only e quindi ci si doveva tenere il valore di default “inferno”, ma con l’ultimo service pack è stata inserita la possibilità di modificare location anche durante il run-time!!!
Ho fatto dei test e pare funzionare regolarmente.
Samuel Zarbock
10 settembre 2009
Sapevo di poter contare su di te.
E se non erro, queste query sono state introdotte proprio dal Service Pack, giusto?
:)
frankeyboard
10 settembre 2009
Bravissimo.
E’ proprio in uno dei tutorial del Service Pack che sono illustrate le query a titolo esemplificativo.
;)
Samuel Zarbock
10 settembre 2009
He he he! Bello pensare ai Vangeli come a dei tutorial…
frankeyboard
10 settembre 2009
Già :)
Per come la vedo io i vangeli sarebbero la knowledge base, “Atti” sarebbe il tutorial e le “lettere” sono una raccolta di case-history.
Naturalmente l’ultimo libro è per il disaster recovery…
:)
Samuel Zarbock
10 settembre 2009
Figo! Il che ha un suo senso… Il disaster recovery, per dire, si basa sul principio della ridondanza. Della distribuzione delle funzioni o delle informazioni in più punti differenti. Il che ci sta: l’Apocalisse è esattamente quello, lo stesso concetto ripetuto più volte. Prima dal punto di vista dello Spirito Santo (lettere alle chiese), poi dal punto di vista di Gesù (l’apparizione del figlio d’Uomo), poi dal punto di vista di Dio (la visione in cielo).
Anzi, non solo: secondo alcuni commentatori, i settenari rappresentano la Storia umana analizzata ogni volta da un punto di vista diverso.
Se non è ridondanza questa… :)
ale
10 settembre 2009
DROP TABLE male;
DB-00666: cannot drop table (male) – dependencies exist (bene)
Samuel Zarbock
10 settembre 2009
Per un attimo ho temuto volessi restituire un Host not found. :)
Guarda che 666 è l’id di una delle istanze conservate nella tabella male. Anzi, non è nemmeno un id: è una label…
Giovanni
10 settembre 2009
Sono cristiano e informatico, e questo per me è il massimo dell’umorismo ;)
Samuel Zarbock
10 settembre 2009
Danke, Giovanni. Lo prendo come un complimento. :)
Andrea
10 settembre 2009
Semplicemente geniale. :)
iena
11 settembre 2009
la sintassi corretta dovrebbe essere
UPDATE padre AS p
SET p.nome = ‘SILVIO BERLUSCONI’, p.posizione_regno = ‘ARCORE’,
^__^