Delete da sql 2000 vs mysql come linked server

giovedì 13 gennaio 2011 - 11.19

boccia75 Profilo | Junior Member

Ciao a tutti,
ho un db (sql server 2000) sul quale ho creato un server collegato PROXY che va a puntare in un db mysql.
Per interrogarlo utilizzo la openquery fatta in questo modo
select * from openquery(PROXY,'select .......') e tutto funziona in maniera egregia.
Quello che devo fare adesso, pero', è una cancellazione sulla tabella mysql.
ho cercato qua e là ed ho trovato questa query che fa proprio al caso mio
delete from openquery(PROXY,'select .....from')

Tuttavia ottengo questo errore:
[OLE/DB provider returned message: [MySQL][ODBC 5.1 Driver][mysqld-5.1.51-community-log]Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT']
Msg 7345, Level 16, State 1, Line 1
Il provider OLE DB 'MSDASQL' non è in grado di eseguire l'eliminazione dalla tabella 'select id from `fg200b3910600943_cid-dlog-1286988004` where id=2 '. Si è verificato un errore reversibile specifico del provider, ad esempio un errore RPC.


Ho capito che devo andare a muovere qualcosa sul db mysql, ho dato all'utente che accede questi permessi:
a livello di server (mysql) ho dato il privilegio SUPER
a livello di db ho dato tutti i privilegi (quindi anche delete)

Cosa devo muovere per poter far eseguire questa query?

Grazie in anticipo,
Boccia

alx_81 Profilo | Guru

>Ciao a tutti,
ciao

>Tuttavia ottengo questo errore:
>[OLE/DB provider returned message: [MySQL][ODBC 5.1 Driver][mysqld-5.1.51-community-log]Binary
>logging not possible. Message: Transaction level 'READ-COMMITTED'
>in InnoDB is not safe for binlog mode 'STATEMENT']
>Msg 7345, Level 16, State 1, Line 1
>Il provider OLE DB 'MSDASQL' non è in grado di eseguire l'eliminazione
>dalla tabella 'select id from `fg200b3910600943_cid-dlog-1286988004`
>where id=2 '. Si è verificato un errore reversibile specifico
>del provider, ad esempio un errore RPC.
>Ho capito che devo andare a muovere qualcosa sul db mysql, ho
>dato all'utente che accede questi permessi:
>a livello di server (mysql) ho dato il privilegio SUPER
>a livello di db ho dato tutti i privilegi (quindi anche delete)
premetto che non conosco bene mysql, però guardando qui e là, sembra che il problema sia il livello di isolamento che utilizzi per effettuare l'operazione.
Prova a leggere questo thread:
http://bugs.mysql.com/bug.php?id=40360

e poi ad approfondire il discorso a livello di sintassi:
http://dev.mysql.com/doc/refman/5.1/en/set-transaction.html

>Grazie in anticipo,
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5