Archive

Posts Tagged ‘Mysql’

Da mysql 4 a mysql 5 – Insert Datetime

March 14th, 2008 Nicola No comments

Aggiornando il server qualche query ha cominciato a dare errore; in particolare, se avete un campo di tipo datetime, e non volevate valorizzarlo potevate inserire nella insert la stringa ” (stringa vuota)

In mysql 4 si aveva:

” -> ’0000-00-00 00:00:00′

In mysql 5:

” -> Errore

Ho risolto mettendo come valore del campo: ’00000000000000′.

Tutto per la pigrizia di non specificare i campi nella insert.

Categories: Mysql Tags:

Mysql: esempio di select [...] for update

August 4th, 2006 Nicola No comments

Qui si trova la documentazione ufficiale:

http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html

Lo scenario è lo stesso descritto dalla pagina sopra: l’operazione da eseguire consiste nel leggere un campo da una tabella ed incrementarlo di una unità. Essendo due operazioni vanno eseguite premunendosi del fatto che nessun altro interroghi la tabella fino a quando non vengono terminate entrambe.

Per effettuare il lock è necessario essere sotto transazione, con autocommit disattivato. Qui trovate come effettuare transazioni in Java

http://java.sun.com/docs/books/tutorial/jdbc/basics/transactions.html

In sostanza si inizia una transazione impostando a false la proprietà autocommit e si termina con il commit o il rollback. E come ultima cosa si rimette l’autocommit a true:

import java.sql.*;
private Connection con;con.setAutoCommit(false);
con.commit(); / con.rollback();
con.setAutoCommit(true);

Ecco l’esempio del SELECT FOR UPDATE:

public static int getIDInvio(SMSConnect conMySql) {
 
   String tmp;
   ResultSet rs;
   int ris = 0;
 
   conMySql.beginTrans();
 
   tmp = "SELECT MAX(ID) FROM TBINVII FOR UPDATE";
   rs = conMySql.getResultset(tmp);
   if (!(rs==null)) {
      try {
      rs.next();
      ris = rs.getInt(1);
      ris++;
      }
      catch (Exception e) {//Errore...}
   }
   else {//Errore...}
 
   tmp = "UPDATE TBINVII SET ID = ID + 1";
   if (!conMySql.executeQuery(tmp)) {//Errore...}
   conMySql.commit();
   return ris;
}
Categories: Java, Mysql Tags: , ,

mysqldump: esportare ed importare un database mysql

June 23rd, 2006 Nicola No comments

Pagina di riferimento: http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Per esportare un database esistente:

mysqldump -u<user> -p --opt <database> > <nomescript.sql>

Questa esportazione, con l’opzione “opt” comprende le drop/create delle tabelle e le insert di tutti i record presenti, non la creazione del database.

Per importare un database dal file creato precedentemente:

c:\mysql -uroot -p <database> < nomescript.sql

Categories: Database, Mysql Tags: ,