2013-08-08 2 views
-1

업데이트 쿼리는 값을 mysql의 임시 테이블로 업데이트하지 않습니다.임시 테이블 문제에 대한 쿼리 업데이트 - mysql

DECLARE _defaultDateTime DATETIME; 
DECLARE _resourceTypeId CHAR(36); 
DECLARE _billedUsageHrs DECIMAL(15,6); 
DECLARE _unbilledusageHrs DECIMAL(15,6); 
DECLARE _billedCost DECIMAL(15,6); 
DECLARE _unBilledCost DECIMAL(15,6); 
DECLARE _resourceIdentifier CHAR(36); 

DROP TABLE IF EXISTS _usageTable; 

CREATE TEMPORARY TABLE _usageTable(resourceinstanceId CHAR(36),billedusageinHrs DECIMAL(15,6), billedusageCost DECIMAL(15,6),      unBilledusageinHrs DECIMAL(15,6), unbilledusageCost DECIMAL(15,6)) ENGINE=MEMORY; 


UPDATE _usageTable SET resourceinstanceId = 'a17b5e49-000c-11e3-8bfa-842b2bac06e5' WHERE 1 = 1; 

SELECT resourceinstanceId, billedusageinHrs, billedusageCost, unBilledusageinHrs, unbilledusageCost FROM _usageTable; 

위의 저장 프로 시저가

+0

자동 커밋이 false로 설정되어 있습니까? –

+1

어딘가에 INSERT 선언문이 누락 되었습니까? –

+2

글쎄, 테이블에 데이터가 없으면 업데이트 할 것이 없습니다. 그처럼 간단합니다. – fancyPants

답변

0
CREATE TEMPORARY TABLE _usageTable(resourceinstanceId CHAR(36), 
            billedusageinHrs DECIMAL(15,6), 
            billedusageCost DECIMAL(15,6), 
            unBilledusageinHrs DECIMAL(15,6), 
            unbilledusageCost DECIMAL(15,6)) ENGINE=MEMORY; 


UPDATE _usageTable SET resourceinstanceId = 'a17b5e49-000c-11e3-8bfa-842b2bac06e5' WHERE 1 = 1; 

UPDATE기존 행을 업데이트합니다 빈 행을 반환합니다.

지금까지 내가을 볼 수있게 방금 테이블을 만들었습니다. 그래서 그것은 비어 있습니다. 업데이트 할 행은 이 아니며 행이 있습니다.

아마도 UPDATE 대신 INSERT을 찾고 계십니까? 또는 예를 들어 에 중점을 두지 않았습니까?

관련 문제