¿Cómo puedo insertar a granel con SQLite?¿Cómo puedo insertar a granel con SQLite?
Lo busqué y parece que hago una inserción con una declaración de selección. Busqué en Google, miré los ejemplos y todos parecen copiar datos de una tabla a otra o no son compatibles con SQLite. Quiero hacer algo como
"INSERT INTO user_msg_media (recipientId, mediaId, catagory, current_media_date) " +
"VALUES(@mediaId, @catagory, @current_media_date)";
where the value of recipientId is the watcher from each of
"SELECT watcher FROM userwatch WHERE [email protected]";
Probé el código abajo y me sale el error "error de SQLite ninguna columna de este tipo: vigilante"
command.CommandText =
"CREATE TABLE if not exists user_msg_media(" +
"msgId INTEGER PRIMARY KEY, " +
"recipientId INTEGER, " +
"mediaId INTEGER, " +
"catagory INTEGER, " +
"current_date DATE);";
command.ExecuteNonQuery();
//user media
command.CommandText =
"CREATE TABLE if not exists user_watch(" +
"indx INTEGER PRIMARY KEY, " +
"watcher INTEGER, " +
"watched INTEGER);";
command.ExecuteNonQuery();
//...
command.CommandText = "SELECT watcher FROM user_watch WHERE watched=:watched;";
command.Parameters.Add(":watched", DbType.Int64).Value = 1;
command.ExecuteNonQuery(); //is ok
command.CommandText =
"INSERT INTO user_msg_media (recipientId, mediaId, catagory, current_media_date) " +
"SELECT watcher, :mediaId, :category, :current_media_date" +
"FROM user_watch WHERE watched=:watched;";
command.Parameters.Add(":mediaId", DbType.Int64).Value = 0;
command.Parameters.Add(":category", DbType.Int64).Value = 0;
command.Parameters.Add(":current_media_date", DbType.Int64).Value = 0;
command.Parameters.Add(":watched", DbType.Int64).Value = 1;
command.ExecuteNonQuery();
¿Está utilizando System.Data.Sqlite? –
Tenga en cuenta que CREATE para la tabla usr_msg_media crea una columna denominada current_date, pero INSERT intenta establecer current_media_date en su lugar: creo que este error está siendo mal diagnosticado por SQLite (se confunde y dice que la columna que falta es watcher), ya que puedo reproducir mensaje de error erróneo - pero si soluciono el error real, funciona, vea el código de ejemplo de Python en mi respuesta. –