2014-04-25 2 views
0

Мне нужно вставить таблицу с некоторыми значениями (например, в этом случае «NDA»). Кажется, это хорошо работает, если у меня есть только одно значение, которое нужно вставить. У меня около дюжины одинаковых значений, есть ли я, я могу настроить этот запрос, чтобы вставить слова {'NDA', 'SDM', 'APM'}. Любопытно узнать, можно ли это сделать без хранимой процедуры или скопировать, вставляя одни и те же утверждения и меняя значения.MySQL вставить в таблицу с набором значений

INSERT IGNORE INTO customer_feature (customer_id, feature) 
SELECT c.id, 'NDA' FROM 
customer as c 
where c.edition = 'FREE_TRIAL'; 

Ссылка: mysql -> insert into tbl (select from another table) and some default values

+0

Какое состояние будет иметь значение? – geoand

+0

Я не следую за тобой. Любой столбец в MySQL может иметь заданное по умолчанию значение. Если вы не укажете значение для этого столбца при вставке, то эта запись получит значение по умолчанию для такого столбца. –

+0

По умолчанию для varchars? Я не слишком уверен в этом. Но я думаю, что это зависимость базы данных. – Peter

ответ

2

Является ли это то, что вы хотите?

INSERT IGNORE INTO customer_feature(customer_id, feature) 
    select c.id, f.feature 
    from customer c cross join 
     (select 'NDA' as feature union all select 'SDM' union all select 'APM' 
     ) f 
    where c.edition = 'FREE_TRIAL'; 
+0

Спасибо, Гордон! Это то, чего я хотел. – Chinmay

+0

Ответ проясняет вопрос. – Peter

Смежные вопросы