Обновите несколько значений в отдельном операторе

Используйте фрагмент кода ниже, и он будет работать.

var Clone = React.cloneElement(<BallComponent/>, {
      key: new Date().getTime(),
      onClick: () => { alert('test') }
    });

P.S.-Убедитесь, что у BallComponent есть onClick, если предупреждение не сработает.

24
задан Kluge 14 November 2008 в 00:51
поделиться

6 ответов

Почему Вы делаете группу на операторе обновления? Вы уверены, что это не часть, которую это заставляет запрос приводить к сбою? Попробуйте это:

update 
    MasterTbl
set
    TotalX = Sum(DetailTbl.X),
    TotalY = Sum(DetailTbl.Y),
    TotalZ = Sum(DetailTbl.Z)
from
    DetailTbl
where
    DetailTbl.MasterID = MasterID
5
ответ дан 28 November 2019 в 23:42
поделиться

В Oracle решение было бы:

UPDATE
    MasterTbl
SET
    (TotalX,TotalY,TotalZ) =
      (SELECT SUM(X),SUM(Y),SUM(Z)
         from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)

не знают, позволяет ли Ваша система то же.

4
ответ дан 28 November 2019 в 23:42
поделиться

Имейте Вас попробованный подзапросом для каждого поля:

UPDATE
    MasterTbl
SET
    TotalX = (SELECT SUM(X) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID),
    TotalY = (SELECT SUM(Y) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID),
    TotalZ = (SELECT SUM(Z) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
WHERE
    ....
3
ответ дан 28 November 2019 в 23:42
поделиться

Попробуйте это:

update MasterTbl M,
       (select sum(X) as sX,
               sum(Y) as sY,
               sum(Z) as sZ,
               MasterID
        from   DetailTbl
        group by MasterID) A
set
  M.TotalX=A.sX,
  M.TotalY=A.sY,
  M.TotalZ=A.sZ
where
  M.ID=A.MasterID
2
ответ дан 28 November 2019 в 23:42
поделиться

Попробуйте это:

 Update MasterTbl Set
    TotalX = Sum(D.X),    
    TotalY = Sum(D.Y),    
    TotalZ = Sum(D.Z)
 From MasterTbl M Join DetailTbl D
    On D.MasterID = M.MasterID

, В зависимости от которой базы данных Вы используете, если это не работает, то пробуют это (это - нестандартный SQL, но законный в SQL Server):

 Update M Set
    TotalX = Sum(D.X),    
    TotalY = Sum(D.Y),    
    TotalZ = Sum(D.Z)
 From MasterTbl M Join DetailTbl D
     On D.MasterID = M.MasterID
25
ответ дан 28 November 2019 в 23:42
поделиться

Если ваша БД поддерживает это, объединение всех 3 обновлений в одну строку sql сэкономит на обходах сервера при запросе по локальной сети. Так что, если ничего не работает, это может дать вам небольшое улучшение. Типичным разделителем, состоящим из нескольких операторов, является точка с запятой, например:

'update x....;update y...;update...z'
0
ответ дан 28 November 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: