|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[MySql] Disperzione con insert
Ragazzi...è urgente...devo finire il progetto dell'esame entro 24 ore...
Bene ho una tabella definita in questo modo Codice:
create table INSERZIONE ( Id_Oggetto int not null auto_increment primary key, Titolo varchar(60) not null, Descrizione text, Costo_Base float(4,2), Scadenza datetime, Compralo_Subito float(4,2), Id_Venditore varchar(20) not null references UTENTE(User_Id), Id_Categoria varchar(30) not null references CATEGORIA(Id_Categoria) ) type=InnoDB; Ho provato ad inserire dei dati in questa tabella ma mi và in errore e non capisco perchè...se faccio la seguente insert: insert into INSERZIONE values (NULL, 'Olimpus E-510', 'Reflex digitale Olympus con sensore 10,1 MP stabilizzato', 200, '2008-02-20', 250, 'Fotografo84', 11); mi dà il seguente errore: "ERROR 1264 (22003): Out of range value adjusted for column 'Costo_Base' at row 1" Vi prego mi date una mano a risolvere? cosa c'è che non và? Se non consegno entro il 20 mattina mi tocca fare l'orale a Giugno e mi suicido |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
I campi si separano sempre con le virgole sempre. Il punto decimale si chiama punto decimale, la virgola la usano solo in Italia.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
no quei numeri 200 e 250 cme sono interi...la virgola separa i campi...non capisco che intendi...
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Guarda, invento perche' MySql l'ho usato una volta sola.
Usa questa sintassi della insert: INSERT INTO Tabella(campo,campo,campo) values(valore,valore,valore); non specificare la chiave primaria (ovvero ne' tra i campi ne' tra i valori) Non userei come tipo: float(4,2). userei solo float. ID_Categoria e' una stringa, non l'hai messa fra apici
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 19-02-2008 alle 00:43. |
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Oracle o SqlServer.
Appunto dicevo di mettere float senza la specifica della precisione, tanto non serve che giustifichi lo spazio.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
oralo ho cambiato float con decimal perchè leggevo che a volte float fà delle cose strane con le approssimazioni...ma perchè cmq posso metterlo anche senza specificare la precisione? e come funziona se non la specifico?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Se non lo specifichi funziona a seconda di come e' definito il default in MySql. In SqlServer p.es. occuperebbe 8 byte, come il double del C.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:30.




















