Получить динамическую переменную для вставки SQL - PullRequest
0 голосов
/ 06 сентября 2018

У меня такой запрос:

INSERT INTO my_table
VALUES (SPECIAL_ID, 62, 0, 1, -1, NULL, NULL, -1)
WHERE sp_id IN (SELECT id = SPECIAL_ID
                FROM foo
                WHERE lock IS NULL)

SPECIAL_ID еще не определен, но он должен быть равен id, полученному из внутреннего оператора SELECT из foo.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018
SELECT SPECIAL_ID, 62, 0, 1, -1, NULL, NULL, -1 
INTO my_table 
FROM your_source_table 
WHERE sp_id in (SELECT id = SPECIAL_ID
               FROM foo
               WHERE lock IS NULL)

В списке имен столбцов нет необходимости, если только их порядковый номер не отличается или вы применяете это только к определенным столбцам, а не ко всем из них

0 голосов
/ 06 сентября 2018

Просто не используйте значения, используйте выбор

INSERT INTO my_table (need To declare list of column names for table insert)
Select SPECIAL_ID, 62, 0, 1, -1, NULL, NULL, -1
From Table
WHERE sp_id IN(
    SELECT id = SPECIAL_ID
    FROM foo
    WHERE lock IS NULL
)

Если для sp_id нет таблицы, вы можете избавиться от нее, где caluse, и переместить вспомогательный элемент вверх так:

INSERT INTO my_table (need To declare list of column names for table insert)
Select SPECIAL_ID, 62, 0, 1, -1, NULL, NULL, -1    
FROM foo
WHERE lock IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...