[英]I am trying to update a record in a table using Entity Framework Core but I am getting an exception
[英]MySQL - Update same record that I am SELECTing
我正在編寫網絡爬蟲。 所有鏈接都存儲在MySQL數據庫中。 因為我將在多個節點上運行搜尋器,所以我需要盡快將URL設置為“正在搜尋”,以保持效率。
我的Web搜尋器是用C#編寫的。 現在,它將下載URL和ID,然后將URL設置為使用ID進行爬網。 問題是需要兩個不同的查詢。 有什么辦法可以將它們組合在一起嗎?
這是我當前的代碼:
string stm = "SELECT * FROM pages WHERE IsCrawled = 0 LIMIT 1;";
MySqlCommand cmd = new MySqlCommand(stm, conn);
cmd.ExecuteScalar();
id = -1;
using (rdr = cmd.ExecuteReader())
{
if (rdr.Read())
{
URL = rdr.GetString(1);
id = rdr.GetInt32(0);
}
}
MySqlCommand update = new MySqlCommand("UPDATE pages SET IsCrawled = 1 WHERE ID = '"+id+"'", conn);
update.ExecuteScalar();
同樣,我想將查詢組合在一起。
要進行更新並全選,您可以執行此操作,但是,我不確定您是否可以在程序流的上下文中完成此工作。
UPDATE pages SET IsCrawled = 1 WHERE ID IN
(SELECT ID FROM pages WHERE IsCrawled = 0 LIMIT 1;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.