Как скопировать строку из одной таблицы в другую?
Есть 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 шт):
Вот это поможет вам:
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.