PDA

View Full Version : tipi di dati C in mysql


marcocris
07-08-2006, 11:11
devo replicare il database del mio palmare sul mio computer utilizzando mysql.
Il db sul palmere ha all'interno delle varie tabelle alcune colonne con i seguenti tipi di dati:

Boolean
UInt32
char *
md_hash

la corrispondenza di tipo i mysql ?

grazie Marco

andbin
07-08-2006, 14:32
devo replicare il database del mio palmare sul mio computer utilizzando mysql.
Il db sul palmere ha all'interno delle varie tabelle alcune colonne con i seguenti tipi di dati:

Boolean
UInt32
char *
md_hash

la corrispondenza di tipo i mysql ?Vediamo ...
Boolean ----> BOOLEAN (disponibile dal MySQL 4.1.0)

UInt32 ----> INT UNSIGNED

char * ----> è sicuramente una stringa quindi un CHAR(nn) o VARCHAR(nn)

md_hash ----> dipende da come è memorizzato questo hash. Se è il MD5 ed è in binario (16 byte), può andare bene un BINARY(16) (dal MySQL 4.1.2) oppure se è la stringa in esadecimale (32 caratteri), va bene un CHAR(32).

marcocris
07-08-2006, 15:19
non possiedo mysql version 4.01 e quindi non posso avere Boolean
cosa posso usare al suo posto?

e UINT16?

grazie ancora

andbin
07-08-2006, 16:58
non possiedo mysql version 4.01 e quindi non posso avere Boolean
cosa posso usare al suo posto?

e UINT16?La documentazione dice:
BOOL, BOOLEAN

These types are synonyms for TINYINT(1). The synonym BOOLEAN was added in MySQL 4.1.0. A value of zero is considered false. Non-zero values are considered trueBOOLEAN è solo un sinonimo aggiunto dalla v4.1.0. Quindi puoi usare tranquillamente TINYINT(1) oppure BOOL. ;)

marcocris
08-08-2006, 10:29
scusa ma sto andando nel pallone...
Sto usando (devo) SQL manager for mysql 3.5.0.1

così per esempio se definisco
pippo INTEGER lui setta automaticamente SIZE = 11 (poi io posso modificarla)

quindi UInt32 diventa INTEGER size 11 UNSIGNED ?
Uint16 ?

grazie per la pazienza

andbin
08-08-2006, 12:26
scusa ma sto andando nel pallone...
Sto usando (devo) SQL manager for mysql 3.5.0.1

così per esempio se definisco
pippo INTEGER lui setta automaticamente SIZE = 11 (poi io posso modificarla)

quindi UInt32 diventa INTEGER size 11 UNSIGNED ?
Uint16 ?Allora:
UInt32 ----> INT UNSIGNED
Uint16 ----> SMALLINT UNSIGNED

Non è necessario che tu metta ad es. INT(6) UNSIGNED. Il numero tra parentesi è solamente il "display width" e non cambia il limite dei valori del campo.