Je suis en train de créer la table à l'aide JavaDB (Derby), mais si je tente d'ajouter SINON EXISTE:JavaDB - CREATE TABLE SI PAS EXISTS - comment?
CREATE TABLE IF NOT EXISTS etc (ID BIGINT PRIMARY KEY, title VARCHAR(150))
Je reçois l'erreur:
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "NOT" at line 1, column 17.
Comme je me souviens qu'il travaille sur MySQL Quelle est la syntaxe/méthode la plus simple pour vérifier si la table existe?
EDIT:
J'ai finalement trouvé la solution:
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getTables(null, "APP", "ETC", null);
if (rs.next()) {
System.out.println("Table " + rs.getString(3) + " exists");
}
J'ai remarqué que le nom de la table est sensible à la casse si elle est créée avec l'aide de citations "etc", et sinon - le nom doit être en majuscule. Selon la documentation de l'API: "doit correspondre au nom de la table telle qu'elle est stockée dans la base de données".
Merci, mais il n'y a pas de telle table sysobjects dans ma base de données. Liste de table: SYSCONGLOMERATES SYSTABLES SYSCOLUMNS SYSSCHEMAS sysconstraints syskeys sysdepends SYSALIASES SYSVIEWS SYSCHECKS SYSFOREIGNKEYS SYSSTATEMENTS SYSFILES SYSTRIGGERS sysstatistics SYSDUMMY1 SYSTABLEPERMS SYSCOLPERMS SYSROUTINEPERMS sysroles SYSSEQUENCES SYSPERMS. Toujours obtenir l'erorr .. –
Avez-vous essayé de remplacer 'sysobjects' avec' systables'? – ClaireG
Essayez ce lien; Il y a des choses plus utiles que vous pouvez essayer de remplacer la première déclaration de sélection. http://stackoverflow.com/questions/205736/get-list-of-all-tables-in-oracle – ClaireG