2009-10-16 11 views
0

Tenir compte du schéma de table pour table1:Autoriser les valeurs entre guillemets dans les colonnes entières mysql?

 
id: int 
country_id: int 
description: varchar(50) 

et la requête:

 
INSERT INTO table1(id, country_id, description) VALUES (1, '20', 'Test Desc'); 

Cela fonctionnerait sous MySQL 4x mais échouera sous MySQL 5x (erreur 1067 (42000): Valeur par défaut non valide pour . .. «)

Je sais que la raison pour que cela se produise - country_id est int et par conséquent ne doit pas être cité est-il un commutateur mysql u. nder 5x quelque part pour le faire se comporter comme 4x donc la requête n'échouera pas?

J'ai hérité d'une application qui utilise des requêtes comme celle-ci et je cherche une solution rapide jusqu'à ce que je puisse trouver le temps de corriger toutes les requêtes.

Merci

+1

Etes-vous sûr que ce n'est pas que vous avez un champ d'auto-incrémentation pour lequel vous avez aussi une valeur par défaut? Ils ont éliminé cela dans 5. – phoebus

+0

Ou utilisez-vous '' comme valeur par défaut pour un int? Vous devez utiliser 0 ou NULL maintenant. – phoebus

+0

Mes excuses, à regarder de plus près, il semble que la requête insert '' pour le domaine int. –

Répondre

1

Il n'y a pas de problème avec '20'. MySql (5.x) projette aussi '20' à 20 et => ceci est un insert valide

Questions connexes