나는 벽에 부딪 히면서 mysql information_schema 업데이트가 실행되는 것에 대해 궁금합니다.MYSQL 어떤 information_schema 데이터 업데이트를 트리거합니까?
제 목표는 테이블 생성 시간을 읽고 그 데이터를 사용자에게 제시하는 것입니다. 그러나 PHP에서 두 개의 MySQL 쿼리를 실행하면 information_schema가 생성 시간을 변경하지 않습니다. 예를 들면 : 나는 하나의 PHP 스크립트에서 테이블을 삭제하는 경우
///drop local table
$delete_sql="DROP TABLE IF EXISTS bom_details;";
if(mysql_query($delete_sql)){
//good
}
//re-create table to update schema timestamp
$create_table_sql="CREATE TABLE IF NOT EXISTS bom_details (
bom_id int(4) NOT NULL AUTO_INCREMENT,
part_number varchar(86) NOT NULL,
component_part_number varchar(86) NOT NULL,
component_level int(2) NOT NULL COMMENT 'line number defination for parts with multiple sub-components',
component_qty decimal(10,4) NOT NULL,
component_um varchar(4) NOT NULL,
PRIMARY KEY (bom_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;";
if(mysql_query($create_table_sql)) {
//worked
}
그러나, 다음 같은 코드가 나는 새로운 창조의 시간을 얻을, 위의 게시하여 다른 PHP 스크립트에서 테이블을 다시 만들 수 있습니다. 또는 phpMyAdmin에 테이블을 놓고 sql create query를 실행하면 새로운 테이블 생성 시간이 생깁니다.
내가 시도한 또 다른 유일한 일은 mySQL에 테이블을 다시 작성하기 전에 DROP를 등록하는 데 몇 초가 걸리는 PHP 스크립트에 슬립 타이머를 넣는 것 뿐이며 운이 없다.
[** 새 코드 **] (http://bit.ly/phpmsql)에는 mysql_ * 함수를 사용하지 마십시오. 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). – esqew
시간 생성 값은 어떻게 확인합니까? '@didierc – didierc
/// 최신 업데이트 표 시간 정보 스키마 \t \t $의 SQL =에서 "\t \t \t \t INFORMATION_SCHEMA.TABLES 로부터 CREATE_TIME을 선택 받기 WHERE TABLE_SCHEMA = 'part_location' \t \t \t \t AND TABLE_NAME = 'bom_details' "; \t \t $ query = mysql_query ($ sql); \t \t \t \t 동안 (= $ 행로 MYSQL_ASSOC ($ 쿼리)) { \t \t \t $ bom_create_time = $ 행 [ 'CREATE_TIME']; \t \t} \t \t echo '최종 업데이트
'. 날짜 ('M j Y g : i A', strtotime ($ bom_create_time));' – nodsdorf