2011-03-22 3 views
0

Salut J'ai un code pour la création de la table:jdbc comment insérer le type mysql SET?

create table clt (id bigint not null, sources set('A1', 'empty', 'A2', 'A3'), text varchar(50)); 
Table

a été créé avec succès.

maintenant je suis en train d'insérer des données:

java.sql.PreparedStatement stmt = null; 
String query = "insert into clt (id, sources, text) values (?, ?, ?)"; 
stmt = conn.prepareStatement(query); 
int it = 0; 
stmt.setLong(++it, 25); 
stmt.setString(++it, "A1, A2"); 
stmt.setString(++it, "some text data"); 
stmt.executeUpdate(); 

et gettting une erreur :( exception: java.sql.SQLException: données tronquées pour la colonne 'sources' à la ligne 1

sans sources tout est ok. où est mon erreur?

merci.

+0

Est-ce les crochets autour de A1 quand vous faites le setString? –

+0

Peut-être parce que dans le schéma, l'élément de l'ensemble est ** A1 **, mais dans votre déclaration, vous essayez d'ajouter ** (A1) ** (les parenthèses pourraient être le problème) –

+0

La réponse de @Ike Walker semble être d'accord. Je n'ai jamais utilisé SET avant moi donc je n'étais pas sûr. –

Répondre

2

Débarrassez-vous des parenthèses autour A1:

stmt.setString(++it, "A1"); 
+0

merci. ça marche ... – denys

+0

comment ajouter deux éléments de SET? A1 et A2 – denys

+0

'stmt.setString (++ it," A1, A2 ");' –