установить данные из таблицы в себе - PullRequest
0 голосов
/ 24 февраля 2020

Итак, мне нужно перенести некоторые данные, запрос:

SELECT * FROM ldf.vin_EntePublicoLDF WHERE ejr_id = 2019;

, и мне нужно взять эти данные, но установить «2020», я пытаюсь:

SET vin_EntePublicoLDF.ejr_id = 2020
INSERT INTO ldf.vin_EntePublicoLDF
SELECT * FROM ldf.vin_EntePublicoLDF WHERE vin_EntePublicoLDF.ejr_id = 2019;`

Но я получаю сообщение об ошибке:

[Err] 1193 - неизвестная системная переменная 'ejr_id'

Любое предложение?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Если я правильно читаю, вы хотите создать дубликат набора строк в вашей таблице и изменить дату для вновь созданных строк.

Для этого вы можете SELECT строки, которые вас интересуют, но жестко запишите значение, которое вам нужно изменить.

INSERT INTO ldf.vin_EntePublicoLDF
(
  <List of all columns, with ejr_id listed last>
)
SELECT 
  <List of all columns EXCEPT ejr_id>,
  2020 AS ejr_id --<--- Hard-code your year column here.
FROM ldf.vin_EntePublicoLDF 
WHERE ejr_id = 2019;

Я переместил ejr_id в конец обоих списков столбцов, чтобы его было легко найти. Вы можете, однако, оставить его в любом порядке, в котором он указан, и просто заменить свое жестко закодированное значение в предложении SELECT оператора INSERT.

0 голосов
/ 24 февраля 2020

Если вы пытаетесь обновить данные, используйте update:

update ldf.vin_EntePublicoLDF 
    set ejr_id = 2020
    where ejr_id = 2019;

Если вы хотите вставить новые строки:

INSERT INTO ldf.vin_EntePublicoLDF ( . . ., ejr_id )  -- list columns here
    SELECT . . ., 2020
    FROM ldf.vin_EntePublicoLDF
    WHERE ejr_id = 2019;
...