Как скопировать строку ЛЮБОГО изменения таблицы один столбец

Я должен копировать одну строку, изменяющую PK. Таблица может отличаться в каждой клиентской установке, таким образом, я не могу только перечислить столбцы. Мне удалось сделать следующее:

INSERT INTO table SELECT * FROM table WHERE PK='value'

но очевидно это перестало работать, потому что я пытаюсь копировать PK.

Затем я попробовал:

INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value'

Это также перестало работать, потому что имена столбцов не соответствовали.

Я знаю, что PK всегда будет первым столбцом, но я не уверен, что он имеет много применения.

Так... Действительно ли это возможно? Какая-либо идея?

5
задан raven 27 March 2013 в 09:34
поделиться

2 ответа

Единственное решение - динамическое построение запроса путем запроса его списка столбцов и исключения столбца идентификаторов (поэтому я предполагаю, что вы хотите пропустить PK).

7
ответ дан 14 December 2019 в 01:06
поделиться
INSERT INTO table1 (col1_PK, col2 col3) 
SELECT newValue, col2, col3
FROM table1 
WHERE col1_PK = 'Value'
2
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

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