Проверяю что они добавлены в phpmyadmin там отображает что в таблице есть новые строчки. Закрытие курсора через cursor.close() не помогаетТ.е. добавляешь, закрываешь добавившую программу, потом запускаешь phpadmin и смотришь данные, так?
комит же не работает с SELECT запросамиА это при чём? добавляешь-то ты INSERT-ом.
where A.dm_rank <= 3
в младших версиях придется делать пользовательские переменные через @, чтобы сделать функционал rank-а.Да ладно! легко эмулируется на коррелированном группирующем подзапросе. Другое дело производительность - работа с переменными всегда однопроходный фуллскан, а группировка может и индексы подтянуть, так что вопрос, какой вариант производительнее, упирается в среднее количество записей на группу.
In InnoDB, each record in a secondary index contains the primary key columns for the row, as well as the columns specified for the secondary index. InnoDB uses this primary key value to search for the row in the clustered index.то на самом деле имеется в виду "InnoDB uses this primary key value to search for the row in the clustered index only." Когда-то давно, ещё в версии, вроде бы, 5.6, я даже не поверил и проводил специальный проверочный эксперимент, который подтвердил этот бред...
Время выполнения запроса не сильно критичное, но тем не менее - 0,1625
WITH cte AS (
SELECT current_point_n <-> LAG(current_point_n) OVER (ORDER BY date_add) single_length
FROM positions
WHERE date_add BETWEEN '2021-01-07 00:00:00' AND '2021-01-07 23:59:59'
)
SELECT SUM(single_length) total_length
FROM cte;
CREATE FUNCTION update_point()
RETURNS trigger
AS $update_point$
BEGIN
NEW.current_point_n := st_geometryfromtext('POINT('|| NEW.latitude ||' '|| NEW.longitude ||')',4326);
RETURN NEW;
END;
$update_point$ LANGUAGE plpgsql;
CREATE TRIGGER update_point
BEFORE INSERT OR UPDATE
ON positions
FOR EACH ROW EXECUTE PROCEDURE update_point();
Зависит от уровня изоляции. При настройках по умолчанию - да, возможна.