Un po' di background per chi è interessato ad alcuni dei problemi arcani che ho affrontato su SQL Fiddle:
In sostanza, sto cercando di garantire che i violini rimangano sempre in uno stato coerente, anche quando le persone ci giocano. Una cosa di cui mi sono preoccupato sono le persone che incasinano intenzionalmente i database, rompendoli per le altre persone che potrebbero lavorare con loro (questo è successo prima, ma fortunatamente non spesso).
Ho trovato metodi per mantenere le cose pulite per ciascuna delle piattaforme di database, ma è interessante notare che ogni metodo è completamente diverso per ciascuna piattaforma. Sfortunatamente, per MySQL ho dovuto ricorrere all'opzione peggiore, consentendo solo SELECT sul lato destro. Questo perché ci sono troppi modi per scrivere query che includono commit impliciti e non c'è alcun modo che ho trovato per impedire che ciò accada a meno di una negazione totale sul lato della query. Questo è abbastanza sfortunato, me ne rendo conto, ma sembra necessario.
Ad ogni modo, questo particolare bug era il risultato di una modifica che avevo recentemente apportato alla logica di MySQL. Ora è stato risolto e ora segnala il messaggio di errore previsto: