(new Thread(() => {
Invoke(new Action(() =>
{
mylabel.Text = "Обработка файла...";
}));
//Тут обработка файла
Invoke(new Action(() =>
{
mylabel.Text = "Обработка файла завершена!";
}));
})).Start();
function signature($id){
global $connection;
$query = "SELECT a.* FROM admin_files a LEFT JOIN support_files s ON s.admin_file_id = a.id AND s.support_id='$id' WHERE s.admin_file_id IS NULL AND a.signature= 1";
$res = mysqli_query($connection, $query);
$signature = array();
while($row = mysqli_fetch_assoc($res)){
$signature[$row['id']] = $row;
}
return $signature;
}
Какая последовательность блокировок строк происходит в случае SELECT … INNER JOIN … FOR UPDATE
SELECT... MT4_USERS... FOR UPDATE
. В MT4_USERS лочит, например, 1, 2... 3INSERT MT4_TRADES... MT4_USERS...
. В MT4_USERS лочит, например, 3... 2как избежать deadlock?
... ORDER BY MT4_USERS.id ASC
CREATE TEMPORARY TABLE ... SELECT ...; UPDATE ...
SELECT... FOR UPDATE
from collections import Counter
my_list = [10, 10, 23, 10, 123, 66, 78, 123]
c = Counter(my_list)
>>> c
Counter({10: 3, 123: 2, 66: 1, 78: 1, 23: 1})
>>> type(c)
<class 'collections.Counter'>
d = dict(c)
>>> d
{10: 3, 123: 2, 66: 1, 78: 1, 23: 1}
>>> type(d)
<class 'dict'>