Je suis en train de configurer une application mysql/nodejs.
Je souhaite supprimer la base de données, recréer la base de données et créer les tables à chaque redémarrage du serveur.
Si je précise une connexion à la base de données :
let con = mysql.createConnection({ hôte : "localhost", utilisateur : "root", mot de passe : "pass", base de données : "ma_base de données", }); ≪/pré> Je peux créer des tables, des index et insérer des valeurs, mais seulement la première fois. Chaque fois plus tard, cela me dit que tout a été créé.
D'un autre côté, si je ne spécifie pas la base de données lors de la création de la connexion, je peux supprimer la base de données, en créer une nouvelle, mais lorsque j'essaie de créer la table, j'obtiens une erreur disant que je ne le fais pas. Je n'ai pas de base de données associée à la table.
Existe-t-il un moyen de résoudre ce problème ?
Vous n'avez pas besoin d'utiliser une base de données pour la connexion
var pool = mysql.createPool({ connectionLimit : 10, host : 'example.org', user : 'bobby', password : 'pass' });Ensuite, vous pouvez créer la base de données
pool.getConnection(function(err, connection){ if(err){ return cb(err); } connection.query("CREATE DATABASE mydb", function(err, data){ connection.release(); cb(err, data); }); });Alors utilisez
connection.changeUser({database : "mydb"});Connectez-vous à la base de données nouvellement créée
pool.getConnection(function(err, connection){ if(err){ return cb(err); } connection.changeUser({database : "mydb"}); let createTodos = `create table if not exists mytable( id int primary key auto_increment, title varchar(255)not null, testdata tinyint(1) not null default 0 )`; connection.query(createTodos, function(err, results, fields) { if (err) { console.log(err.message); }; });Ceci est simplement divisé en fonctions distinctes pour montrer l'idée.