У меня есть данные в таблице wp_users
, и я хочу скопировать данные из этой таблицы (кроме столбца идентификатора) в другую таблицу, которая называется wp_users2
.
Если бы меня не волновал столбец id
, который я хочу автоматически увеличивать, я мог бы просто сделать это:
insert into wp_users2 (select *, NULL as ID from wp_users)
Итак, я знаю, что мог бы сделать это, напечатав все заголовки столбцов, кроме ID, и вручную выбрав его как NULL,
SELECT NULL as id, col2, col3...
но я бы хотел сделать это динамически. Я прочитал этот замечательный пост SO о том, как это сделать, и он работает, однако я не могу понять, как взять данные, которые он мне дал, и поместить их в оператор вставки.
INSERT INTO wp_users2 (
SET @sql = CONCAT('SELECT NULL as ID,',
(SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), 'ID,', '')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'wp_users'
AND TABLE_SCHEMA = 'wp1'),
' FROM wp_users');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
)
Какой синтаксис для этого подходит?