MySql Dump capriccioso o cosa?!

Salve a tutti,

volevo chiedervi consiglio circa una cosa molto strana che mi sta capitando.

Ho un db remoto con una tabella che possiede molti records riguardanti delle aziende. La cosa strana che mi capita è che al momento del restore del dump di phpmyadmin precedentemente creato, mi da un errore sulla dimensione del campo Tipologia e mi dice che la quantità di dati inseriti supera i 255 caratteri impostati nella tabella. Infatti basta aumentare da 255 a 258 caratteri le proprietà del campo e tutto funziona. Utilizzo MySQL 5.

DROP TABLE IF EXISTS `Azienda`;
CREATE TABLE `Azienda` (
  `IdAzienda` int(11) NOT NULL auto_increment,
  `Indirizzo` varchar(255) default NULL,
  `Azienda` varchar(255) default NULL,
  `Tipologia` varchar(255) default NULL
  PRIMARY KEY  (`IdAzienda`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=701 ;

Cosa succede?! E' un errore di MySQL?!

 :bye:

inviato 10 anni fa
ulisse
X 0 X

varchar è 255 non puoi mettere 258 ... accetta solo 255 byte di dati lol

usa TEXT come genere del campo magari funziona

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Sembra strano anche a me. Non vorrei che questa cosa fosse legata alle stringhe in UTF8 che contengono caratteri multibyte.

Hai l'ultima versione di MySQL 5?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

si avevo pensato quello io ma poi mi è scaduto il tempo di edit lol :D

ma Gianni qual'è il charset "migliore" o che cmq da meno problemi?

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

il migliore è l'utf8, peccato che PHP non lo supporti a pieno... ma ci rifaremo con PHP6!!!

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

vero :D

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

...le cose cambiano:

http://dev.mysql.com/doc/refman/5.0/en/char.html

Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. (The maximum effective length of a VARCHAR in MySQL 5.0.3 and later is determined by the maximum row size and the character set used. The maximum length overall is 65,532 bytes.)

a questo punto inizio a supporre che l'errore sia stato commesso da phpMyAdmin. Che versione stai usando? Per avere una conferma lancia la query:

SHOW CREATE TABLE Azienda

così sapremo quanto è realmente grande il campo varchar in questione-

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie ragazzi,

ho fatto i giusti controlli e pare proprio come dice Gianni. PHPMYADMIN confonde il varchar del mio db MySQL 5.

Grazie

Ulisse  :bye:

risposto 10 anni fa
ulisse
X 0 X

se hai accesso al server (ad esempio via ssh) per il backup puoi usare le utility di MySQL

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Purtroppo non ho nessun accesso SSH  :(

 :bye:

risposto 10 anni fa
ulisse
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda