Я должен копировать одну строку, изменяющую PK. Таблица может отличаться в каждой клиентской установке, таким образом, я не могу только перечислить столбцы. Мне удалось сделать следующее:
INSERT INTO table SELECT * FROM table WHERE PK='value'
но очевидно это перестало работать, потому что я пытаюсь копировать PK.
Затем я попробовал:
INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value'
Это также перестало работать, потому что имена столбцов не соответствовали.
Я знаю, что PK всегда будет первым столбцом, но я не уверен, что он имеет много применения.
Так... Действительно ли это возможно? Какая-либо идея?
Единственное решение - динамическое построение запроса путем запроса его списка столбцов и исключения столбца идентификаторов (поэтому я предполагаю, что вы хотите пропустить PK).
INSERT INTO table1 (col1_PK, col2 col3)
SELECT newValue, col2, col3
FROM table1
WHERE col1_PK = 'Value'