Как скопировать строку из одной таблицы в другую?

Есть 2 таблицы:

busy_cars (8 ячеек) и cars (7 ячеек). Мне нужно скопировать строку из cars в busy_cars, но добавив еще одно значение типа int

Пробую так, но очевидная ошибка: 7 values for 8 columns.

insert into busy_cars('id', 'name', 'age', 'city', 'desc', 'photo', 'price', 'client_id') SELECT * from cars where id=2


Ответы (1 шт):

Автор решения: Inventor

Вот это поможет вам:

INSERT INTO busy_cars('id', 'name', 'age', 'city', 'desc', 'photo', 'price', 'client_id') SELECT cars.*, 10 AS your_column FROM cars WHERE id=2;

Вместо 10 в SELECT может быть любое другое значение, которое вы хотите вставить, вместо your_column название колонки, в которую вы хотите вставить это значение.

НО. Если вы копируете строки из одной таблицы в другую, то это не совсем здоровое решение. Задумайтесь над использованием foreign key

UPD Учтите что при SELECT cars.* значения вставятся в том порядке, в каком они в таблице cars. Для того чтобы предотвратить это перечислите все колонки вместо SELECT * в том порядке, который вы указали после INSERT INTO.

→ Ссылка