Tôi làm cách nào để chèn hàng loạt bằng SQLite?Làm cách nào để chèn hàng loạt với SQLite?
Tôi đã tra cứu và có vẻ như tôi chèn một câu lệnh chọn. Tôi googled, nhìn vào các ví dụ và tất cả họ trông giống như họ đang sao chép dữ liệu từ một bảng khác hoặc không tương thích với SQLite. Tôi muốn làm một cái gì đó giống như
"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]";
Tôi đã thử đoạn code dưới đây và tôi nhận được lỗi "lỗi SQLite không có cột như: watcher"
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();
Bạn đang sử dụng System.Data.Sqlite? –
Lưu ý CREATE cho bảng usr_msg_media tạo một cột có tên là current_date, nhưng INSERT cố gắng đặt current_media_date thay vào đó: Tôi tin rằng lỗi này đang bị sai lệch bởi SQLite (nó bị nhầm lẫn và tuyên bố cột bị thiếu là người xem), vì tôi có thể tái tạo thông báo lỗi sai - nhưng nếu tôi sửa lỗi thực, nó hoạt động, xem mã mẫu Python trong câu trả lời của tôi. –