MySQL 쿼리를 예약하는 방법은?
MySQL에서 지정된 간격으로 작업을 실행하도록 예약할 수 있습니까?
인벤토리 MySQL 데이터베이스가 있습니다.구조는 다음과 같습니다.
table_1 fields: itmcode, avgcost
table_2 fields: itmcode(FK to table_1(itmcode)), quantity
보고서의 기본은 지난 날짜의 재고 평가 내역 항목을 현명하게 처리하고 싶을 때입니다.
그avgcost
그리고.quantity
필드는 새 구매가 시스템에 게시될 때 변경됩니다.현재 주식 평가를 확인하기 위해 쿼리를 실행할 수 있지만 이전 날짜의 주식 평가도 확인하고 싶습니다.그걸 어떻게 하는 거죠?수량에 대해서는 매출액을 합산하고 보고서가 요구하는 날짜까지 현재 날짜에서 차감할 수 있지만, 구매가 게시될 때마다 업데이트되기 때문에 평균 비용은 현재입니다.
나는 이것과 비슷한 자동 일일 덤프를 실행할 수 있는지 궁금했습니다.
SELECT itmcode, quantity, avgcost, (avgcost * quantity) as ttlval
FROM table_1
JOIN table_2 ON table_1.itmcode = table_2.itmcode
이 작업을 MySQL에서 직접 예약할 수 있습니까? 아니면 다른 해결책이 있습니까?
두 가지 기본 옵션(최소)이 있습니다.
1, 이벤트 스케줄러 보기
먼저 필드가 있는 stock_dump와 같은 테이블을 만듭니다.
품명코드, 수량, 평균비용, ttlval, dump_date (DATETIME)
CREATE EVENT `Dumping_event` ON SCHEDULE
EVERY 1 DAY
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT ''
DO BEGIN
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
END
위에 게시된 링크에서 스케줄러를 활성화하는 방법에 대한 지침을 따르십시오.참고: 이전 버전의 mysql에는 이벤트 스케줄러가 없습니다.
2, cron 작업/윈도우즈 스케줄링된 작업 생성:
sql 파일 생성:
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
다음 명령을 예약합니다.
mysql -uusername -ppassword < /path/to/sql_file.sql
이를 위해 EyeShare나 AutoSQL.net 같은 일반적인 도구를 사용할 수 있습니다.EyeShare는 보다 일반적인 IT 프로세스 자동화 도구이며 AutoSQL은 쿼리를 예약하고 이를 Excel 또는 CSV로 출력하기 위한 단일 용도 도구입니다.
언급URL : https://stackoverflow.com/questions/9621355/how-to-schedule-a-mysql-query
'IT' 카테고리의 다른 글
Oracle에서 SQL Server 게시 (0) | 2023.09.20 |
---|---|
Pandas 데이터 프레임의 목록을 기준으로 색인된 행의 순서를 변경하는 방법 (0) | 2023.09.20 |
wc_empty_cart_message 기능을 wcoCommerce 3.1에서 변경 (0) | 2023.09.20 |
오라클 고유 수행 정렬 (0) | 2023.09.20 |
.live가 더 이상 사용되지 않으므로 향후 요소에 대한 jQuery.on 함수 (0) | 2023.09.20 |