У меня есть 5 текстовых полей, в которых 5 контактов нет конкретного человека. Я хочу вставить те 5 контактов no в tblContact(person_id|contact_no)
. Могу ли я вставить эти 5 контактов no в один sql-оператор или мне нужно вызвать цикл для вставки 5 записей?
INSERT INTO `tblContact` (`person_id`, `contact_no`) VALUES ('PERSON_ID_VALUE_1', 'CONTACT_NO_VALUE_1'), ('PERSON_ID_VALUE_2', 'CONTACT_NO_VALUE_2'), ('PERSON_ID_VALUE_3', 'CONTACT_NO_VALUE_3'), ('PERSON_ID_VALUE_4', 'CONTACT_NO_VALUE_4'), ('PERSON_ID_VALUE_5', 'CONTACT_NO_VALUE_5');
Многие базы данных имеют возможность вставки нескольких строк, и MySQL является одним из них. Вы можете использовать (в 5.0+, не уверены в более ранних версиях, хотя краткий обзор документов 3.23 / 4.0 / 4.1, кажется, указывает да), например:
insert into tblContact (person_id,contact_no) values (1, '555-5555'), (2, '555-1234');
Подробнее здесь .
Кроме того: если в вашей базе данных не поддерживается многострочная вставка, вы, вероятно, просто используете транзакцию вокруг группы отдельных операторов вставки. Мы обнаружили, что многострочные вставки действительно дают нам довольно значительное увеличение скорости (в нашей СУБД в любом случае – YMMV).
вы можете вставить свои 5 записей в 1 вставку.
например: insert в tblContact (person_id, contact_no) значения (1, '145566'), (2, '233366'), (3, '564666')