2009-08-13 6 views
0

Je veux créer une table contenant trois colonnes de chaîne:Comment créer une table dans mysql pour contenir 3 colonnes?

  1. La page JSP
  2. partie de la page JSP (comme pied de page, en-tête, texte)
  3. texte Valeur réelle

Comment est-ce que je fais cela:

  1. depuis l'invite de commande
  2. à partir d'une application Java (Créer si elle n'existe pas - comment commun est)

Merci

Répondre

2

Il est peu probable que vous voulez créer une table dynamique, en particulier si vous avez besoin pour enregistrer des données et l'obtenir pendant d'autres sessions. Il est préférable d'utiliser l'invite de commande mysql ou un outil graphique tel que SQL Yog pour créer une table que vous accéderez ultérieurement à la page JSP.

La commande pour créer la table ressemblera à ceci

CREATE TABLE `pages` (
    `id` int(11) NOT NULL auto_increment, 
    `part_of_page` varchar(30) NOT NULL, 
    `actual_text` varchar(300) NOT NULL, 
    PRIMARY KEY (`id`) 
) CHARACTER SET `utf8`; 
+0

Pourquoi la clé primaire ID? – vehomzzz

+0

s'il vous plaît ne dites pas 'NOT NULL default' ''', mais à la place, dites simplement' NOT NULL'. De cette façon, la base de données donnera une erreur si vous essayez d'insérer des données vides. – hhaamu

1

Comme le dit PHP Penseur, vous voulez rarement créer une table dynamique au sein d'un programme. Mais si vous avez une raison légitime, vous présenter juste le « créer » énoncé comme une requête de mise à jour:

try 
{  
Statement st=conn.createStatement(); 
    st.executeUpdate("create table mytable ... whatever ..."); 
    st.close(); 
} 
catch (SQLException oops) 
{ 
    ... query had syntax errors or something ... 
} 

Ceci est une mise à jour et non une requête donc il n'y a pas de résultats retourné. La valeur de retour est le nombre d'enregistrements mis à jour, ce qui pour une "table de création" est toujours zéro donc aucun point ne le dérange. S'il y a une erreur dans

+0

+! Que diriez-vous de créer si ça n'existe pas? – vehomzzz

+0

La seule astuce consiste à vérifier si elle existe déjà. Je ne connais aucune méthode SQL générique pour demander si une table existe, mais une méthode Java générique consisterait à utiliser Connection.getMetaData() pour obtenir un objet DatabaseMetaData pour votre base de données, puis getTables (null, null, "mytablename ", null) et si vous obtenez quelque chose, la table existe. (Utilisez des valeurs non nulles pour les autres paramètres si nécessaire pour éviter l'ambiguïté - voir les JavaDocs.) La plupart des moteurs SQL supportent maintenant le "schéma_information", vous pouvez donc faire une requête. Mais je pense que la méthode DatabaseMetaData est plus propre. – Jay

Questions connexes